Skip to content

Commit 8296cff

Browse files
authored
Merge pull request codex-team#289 from devnull-1337/fix/localStorage-logout
fix: clear local storage on logout
2 parents 0037810 + 28aa4f2 commit 8296cff

6 files changed

Lines changed: 45 additions & 2 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 all opened pages excluding Home page
81+
*/
82+
function deleteOpenedPages(): void {
83+
workspaceService.deleteOpenedPages();
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 all opened pages excluding Home page
26+
*/
27+
deleteOpenedPages: () => 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 deleteOpenedPages(): void {
45+
this.repository.deleteOpenedPages();
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 all opened pages excluding Home page
67+
*/
68+
public deleteOpenedPages(): 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 all opened pages excluding Home page
43+
*/
44+
public deleteOpenedPages(): void {
45+
this.store.deleteOpenedPages();
46+
}
4047
}

src/presentation/pages/Settings.vue

Lines changed: 2 additions & 2 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,7 +209,7 @@ async function userLogout() {
209209
/**
210210
* Delete user opened page
211211
*/
212-
deleteOpenedPageByUrl('/settings');
212+
deleteOpenedPages();
213213
214214
router.replace({ path: '/' });
215215
}

0 commit comments

Comments
 (0)