feat: clear local games on signout

feat: signout modal text
This commit is contained in:
Zamitto 2024-06-20 17:15:24 -03:00
parent 7b453852b6
commit 9eff4010d7
6 changed files with 26 additions and 12 deletions

View file

@ -248,6 +248,7 @@
"cancel": "Cancel", "cancel": "Cancel",
"successfully_signed_out": "Successfully signed out", "successfully_signed_out": "Successfully signed out",
"sign_out": "Sign out", "sign_out": "Sign out",
"playing_for": "Playing for {{amount}}" "playing_for": "Playing for {{amount}}",
"sign_out_modal_text": "Your library is linked with your current account. When signing out, your library will not be visible anymore, and any progress will not be saved. Continue with sign out?"
} }
} }

View file

@ -248,6 +248,7 @@
"successfully_signed_out": "Deslogado com sucesso", "successfully_signed_out": "Deslogado com sucesso",
"sign_out": "Sair da conta", "sign_out": "Sair da conta",
"sign_out_modal_title": "Tem certeza?", "sign_out_modal_title": "Tem certeza?",
"playing_for": "Jogando por {{amount}}" "playing_for": "Jogando por {{amount}}",
"sign_out_modal_text": "Sua biblioteca de jogos está associada com a sua conta atual. Ao sair, sua biblioteca não aparecerá mais no Hydra e qualquer progresso não será salvo. Deseja continuar?"
} }
} }

View file

@ -1,11 +1,12 @@
import { userAuthRepository } from "@main/repository"; import { gameRepository, userAuthRepository } from "@main/repository";
import { registerEvent } from "../register-event"; import { registerEvent } from "../register-event";
import { HydraApi } from "@main/services/hydra-api"; import { HydraApi } from "@main/services/hydra-api";
const signOut = async (_event: Electron.IpcMainInvokeEvent): Promise<void> => { const signOut = async (_event: Electron.IpcMainInvokeEvent): Promise<void> => {
await Promise.all([ await Promise.all([
userAuthRepository.delete({ id: 1 }), userAuthRepository.delete({ id: 1 }),
HydraApi.post("/auth/logout"), gameRepository.delete({}),
HydraApi.post("/auth/logout").catch(),
]); ]);
}; };

View file

@ -40,7 +40,7 @@ import "./download-sources/validate-download-source";
import "./download-sources/add-download-source"; import "./download-sources/add-download-source";
import "./download-sources/remove-download-source"; import "./download-sources/remove-download-source";
import "./download-sources/sync-download-sources"; import "./download-sources/sync-download-sources";
import "./auth/signout"; import "./auth/sign-out";
import "./auth/open-auth-window"; import "./auth/open-auth-window";
import "./user/get-user"; import "./user/get-user";
import "./profile/get-me"; import "./profile/get-me";

View file

@ -22,14 +22,17 @@ export const UserSignOutModal = ({
title={t("sign_out_modal_title")} title={t("sign_out_modal_title")}
onClose={onClose} onClose={onClose}
> >
<div className={styles.signOutModalButtonsContainer}> <div className={styles.signOutModalContent}>
<Button onClick={onConfirm} theme="outline"> <p style={{ fontFamily: "Fira Sans" }}>{t("sign_out_modal_text")}</p>
{t("signout")} <div className={styles.signOutModalButtonsContainer}>
</Button> <Button onClick={onConfirm} theme="danger">
{t("sign_out")}
</Button>
<Button onClick={onClose} theme="primary"> <Button onClick={onClose} theme="primary">
{t("cancel")} {t("cancel")}
</Button> </Button>
</div>
</div> </div>
</Modal> </Modal>
</> </>

View file

@ -190,10 +190,18 @@ export const noDownloads = style({
gap: `${SPACING_UNIT}px`, gap: `${SPACING_UNIT}px`,
}); });
export const signOutModalContent = style({
display: "flex",
width: "100%",
flexDirection: "column",
gap: `${SPACING_UNIT}px`,
});
export const signOutModalButtonsContainer = style({ export const signOutModalButtonsContainer = style({
display: "flex", display: "flex",
width: "100%", width: "100%",
justifyContent: "end", justifyContent: "end",
alignItems: "center", alignItems: "center",
gap: `${SPACING_UNIT}px`, gap: `${SPACING_UNIT}px`,
paddingTop: `${SPACING_UNIT}px`,
}); });