()
| 17 | }; |
| 18 | |
| 19 | export const logout = async () => { |
| 20 | const serverUrl = getExperimentalServerUrl(); |
| 21 | const authUrl = `${serverUrl}/api/auth`; |
| 22 | return fetch(authUrl, { |
| 23 | method: "DELETE", |
| 24 | credentials: "include", |
| 25 | }).then(async () => { |
| 26 | const prevUserId = useUserStore.getState().id; |
| 27 | const user = await fetchUser(); |
| 28 | useUserStore.setState((state) => ({ |
| 29 | ...state, |
| 30 | ...user, |
| 31 | avatarUrl: undefined, |
| 32 | })); |
| 33 | useGameStore.setState((state) => { |
| 34 | return { |
| 35 | ...state, |
| 36 | owner: state.owner === prevUserId ? user.id : state.owner, |
| 37 | }; |
| 38 | }); |
| 39 | useGameStore.getState().game?.reconnect(); |
| 40 | }); |
| 41 | }; |
no test coverage detected