Skip to content

Commit db92e12

Browse files
authored
Merge pull request #473 from code0-tech/feat/user-session
Adjust user session handling
2 parents 2957d6d + 20888bc commit db92e12

File tree

5 files changed

+22
-10
lines changed

5 files changed

+22
-10
lines changed

src/components/d-user/DUser.service.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,6 @@ export abstract class DUserReactiveService extends ReactiveArrayService<DUserVie
3737
//TODO: inject UI error handler for toasts
3838
//no id's need to be injected here because the root query has a users field
3939

40-
createUserSession(payload: UserSession): void {
41-
window.localStorage.setItem("ide_code-zero_session", JSON.stringify(payload));
42-
}
43-
44-
getUserSession(): UserSession | undefined {
45-
return JSON.parse(window.localStorage.getItem("ide_code-zero_session")!!) as UserSession
46-
}
47-
4840
getById(id: User['id']): DUserView | undefined {
4941
return this.values().find(user => user.id === id);
5042
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import React from "react";
2+
import type {UserSession} from "@code0-tech/sagittarius-graphql-types";
3+
4+
export const useUserSession = () => {
5+
const [session, setSession] = React.useState<UserSession | null>(null)
6+
7+
React.useEffect(() => {
8+
const userSession = JSON.parse(localStorage.getItem("ide_code-zero_session")!!) as UserSession
9+
if (userSession && userSession.token) setSession(userSession)
10+
}, [])
11+
12+
return session
13+
}
14+
15+
export const setUserSession = (userSession: UserSession) => {
16+
localStorage.setItem("ide_code-zero_session", JSON.stringify(userSession))
17+
}

src/components/d-user/DUserMenu.stories.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import {
3434
} from "@code0-tech/sagittarius-graphql-types";
3535
import {DUserView} from "./DUser.view"
3636
import {MenuGroup, MenuItem, MenuLabel, MenuSeparator} from "../menu/Menu"
37+
import {setUserSession} from "./DUser.session.hook";
3738

3839
const meta: Meta = {
3940
title: "DUserMenu",
@@ -118,7 +119,7 @@ export const DUserMenuExample: DUserMenuStory = {
118119
})
119120
])
120121

121-
userService.createUserSession({
122+
setUserSession({
122123
user: {
123124
id: "gid://sagittarius/User/1",
124125
username: "exampleuser",

src/components/d-user/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export * from "./DUser.service"
22
export * from "./DUser.view"
3-
export * from "./DUserMenu"
3+
export * from "./DUserMenu"
4+
export * from "./DUser.session.hook"

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ export * from "./components/row/Row"
2626
export * from "./components/scroll-area/ScrollArea"
2727
export * from "./components/segmented-control/SegmentedControl"
2828
export * from "./components/spacing/Spacing"
29+
export * from "./components/tab/Tab"
2930
export * from "./components/text/Text"
3031
export * from "./components/tooltip/Tooltip"
3132

0 commit comments

Comments
 (0)