Skip to content

Commit fb4845a

Browse files
author
Abhishek Jasud
committed
fix: delete opened pages excluding home page on user logout
1 parent c550bf3 commit fb4845a

6 files changed

Lines changed: 45 additions & 7 deletions

File tree

src/application/services/useNavbar.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ interface useNavbarComposableState {
2828
*/
2929
patchOpenedPageByUrl: (url: OpenedPage['url'], page: OpenedPage) => void;
3030

31+
/**
32+
* Delete all opened pages excluding Home page
33+
*/
34+
deleteOpenedPages: () => void;
35+
3136
/**
3237
* There would be stored all currently opened pages
3338
*/
@@ -71,6 +76,13 @@ export default function useNavbar(): useNavbarComposableState {
7176
workspaceService.patchOpenedPageByUrl(url, page);
7277
};
7378

79+
/**
80+
* Delete opened pages excluding Home page
81+
*/
82+
function deleteOpenedPages(): void {
83+
workspaceService.deleteOpenPages();
84+
}
85+
7486
/**
7587
* Hook for adding new page to storage when user changes route
7688
*/
@@ -120,5 +132,6 @@ export default function useNavbar(): useNavbarComposableState {
120132
deleteOpenedPageByUrl,
121133
patchOpenedPageByUrl,
122134
currentOpenedPages,
135+
deleteOpenedPages,
123136
};
124137
}

src/domain/workspace.repository.interface.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,9 @@ export default interface WorkspaceRepositoryInterface {
2121
*/
2222
patchOpenedPageByUrl: (url: OpenedPage['url'], page: OpenedPage) => void;
2323

24+
/**
25+
* Delete opened pages excluding Home Page
26+
*/
27+
deleteOpenPages: () => void;
28+
2429
}

src/domain/workspace.service.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,11 @@ export default class WorkspaceService {
3737
public patchOpenedPageByUrl(url: OpenedPage['url'], page: OpenedPage): void {
3838
this.repository.patchOpenedPageByUrl(url, page);
3939
}
40+
41+
/**
42+
* Delete opened pages excluding Home Page
43+
*/
44+
public deleteOpenPages(): void {
45+
this.repository.deleteOpenPages();
46+
}
4047
}

src/infrastructure/storage/openedPage.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,15 @@ export class OpenedPagesStore extends PersistantStore<OpenedPagesStoreData> {
6161
url: currentPage.url };
6262
});
6363
}
64+
65+
/**
66+
* Delete opened pages excluding Home Page
67+
*/
68+
public deleteOpenPages(): void {
69+
this.data.openedPages?.forEach((currentPage) => {
70+
if (currentPage.url !== '/') {
71+
this.deleteOpenedPageByUrl(currentPage.url);
72+
}
73+
});
74+
}
6475
}

src/infrastructure/workspace.repository.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,11 @@ export default class WorkspaceRepository extends Repository<OpenedPagesStore, Op
3737
public patchOpenedPageByUrl(url: OpenedPage['url'], page: OpenedPage): void {
3838
return this.store.patchOpenedPageByUrl(url, page);
3939
}
40+
41+
/**
42+
* Delete opened pages excluding Home Page
43+
*/
44+
public deleteOpenPages(): void {
45+
this.store.deleteOpenPages();
46+
}
4047
}

src/presentation/pages/Settings.vue

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ const { t } = useI18n();
178178
const router = useRouter();
179179
const { logout } = useAuth();
180180
const { removeTool } = useUserSettings();
181-
const { deleteOpenedPageByUrl } = useNavbar();
181+
const { deleteOpenedPages } = useNavbar();
182182
const { themeBase, themeAccent, colorScheme, setBaseTheme, setAccentTheme, setColorScheme } = useTheme();
183183
184184
/**
@@ -209,12 +209,7 @@ async function userLogout() {
209209
/**
210210
* Delete user opened page
211211
*/
212-
deleteOpenedPageByUrl('/settings');
213-
214-
/**
215-
* Clear local Storage
216-
*/
217-
window.localStorage.clear();
212+
deleteOpenedPages();
218213
219214
router.replace({ path: '/' });
220215
}

0 commit comments

Comments
 (0)