Skip to content

Commit efd3bba

Browse files
committed
refactor: Improve null checks and type declarations
- Add `ws` connection ref to Window interface - Initialize `result` to null for vacation fetching - Add null checks for API responses before accessing `results` and `count`
1 parent 9e66a75 commit efd3bba

2 files changed

Lines changed: 15 additions & 9 deletions

File tree

client/global.d.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
declare global {
22
export interface Window {
3-
// Define window props here
4-
// -->
3+
connections: {
4+
ws: import('vue').Ref<WebSocket | null>
5+
}
56
}
67
}
78

8-
export {} // Important
9+
export { } // Important

client/src/views/RequestsView.vue

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,9 @@ export default defineComponent({
207207
users.value = await listAllActiveOfficeUsers($api);
208208
} else {
209209
const result = await $api.users.list();
210-
users.value = result!.results;
210+
if (result) {
211+
users.value = result.results;
212+
}
211213
}
212214
isLoadingUsers.value = false;
213215
};
@@ -216,7 +218,7 @@ export default defineComponent({
216218
const fetchVacations = async () => {
217219
isLoadingVacations.value = true;
218220
try {
219-
let result: Api.Returns.List<Api.Vacation>;
221+
let result: Api.Returns.List<Api.Vacation> | null = null;
220222
const query = {
221223
page: vacationsPage.value,
222224
status: selectedStatus.value !== 'all' ? selectedStatus.value : undefined,
@@ -225,10 +227,11 @@ export default defineComponent({
225227
};
226228
227229
if (tab.value === 'personal') {
228-
result = await $api.vacations.myPendingRequests({ ...query, user_only: true }); // We might need a generic user history endpoint too
229230
// Actually, let's use listUserRequests for personal history but include status/type filters
230231
const personalId = ApiClientBase.user.value?.fullUser.id;
231-
result = await $api.vacations.listUserRequests({ ...query, user_id: personalId });
232+
if (personalId) {
233+
result = await $api.vacations.listUserRequests({ ...query, user_id: personalId });
234+
}
232235
} else if (tab.value === 'team') {
233236
// In Team tab, we usually look for pending/actionable stuff
234237
result = await $api.vacations.myTeamPendingRequests(query);
@@ -242,8 +245,10 @@ export default defineComponent({
242245
result = await $api.vacations.listUserRequests({ ...query, user_id: selectedUser.value.id });
243246
}
244247
245-
userRequests.value = result!.results;
246-
vacationsCount.value = Math.ceil(result!.count / 10);
248+
if (result) {
249+
userRequests.value = result.results;
250+
vacationsCount.value = Math.ceil(result.count / 10);
251+
}
247252
} catch (error) {
248253
console.error("Failed to fetch vacations:", error);
249254
} finally {

0 commit comments

Comments
 (0)