mirror of
https://github.com/toeverything/AFFiNE.git
synced 2025-01-03 14:11:54 +03:00
refactor(core): remove once signed in event (#6740)
This once signed in event does not work properly.
This commit is contained in:
parent
a14194c482
commit
148e058cde
@ -1,25 +0,0 @@
|
||||
import { atom, useAtom } from 'jotai';
|
||||
import { useCallback } from 'react';
|
||||
|
||||
export type OnceSignedInEvent = () => void;
|
||||
|
||||
export const onceSignedInEventsAtom = atom<OnceSignedInEvent[]>([]);
|
||||
|
||||
export const setOnceSignedInEventAtom = atom(
|
||||
null,
|
||||
(get, set, event: OnceSignedInEvent) => {
|
||||
set(onceSignedInEventsAtom, [...get(onceSignedInEventsAtom), event]);
|
||||
}
|
||||
);
|
||||
|
||||
export const useOnceSignedInEvents = () => {
|
||||
const [events, setEvents] = useAtom(onceSignedInEventsAtom);
|
||||
return useCallback(async () => {
|
||||
try {
|
||||
await Promise.all(events.map(event => event()));
|
||||
} catch (err) {
|
||||
console.error('Error executing one of the events:', err);
|
||||
}
|
||||
setEvents([]);
|
||||
}, [events, setEvents]);
|
||||
};
|
@ -1,6 +1,5 @@
|
||||
import { useConfirmModal } from '@affine/component';
|
||||
import { authAtom } from '@affine/core/atoms';
|
||||
import { setOnceSignedInEventAtom } from '@affine/core/atoms/event';
|
||||
import { AuthService } from '@affine/core/modules/cloud';
|
||||
import { WorkspaceSubPath } from '@affine/core/shared';
|
||||
import { useAFFiNEI18N } from '@affine/i18n/hooks';
|
||||
@ -32,7 +31,6 @@ export const useEnableCloud = () => {
|
||||
const t = useAFFiNEI18N();
|
||||
const loginStatus = useLiveData(useService(AuthService).session.status$);
|
||||
const setAuthAtom = useSetAtom(authAtom);
|
||||
const setOnceSignedInEvent = useSetAtom(setOnceSignedInEventAtom);
|
||||
const { openConfirmModal, closeConfirmModal } = useConfirmModal();
|
||||
const workspacesService = useService(WorkspacesService);
|
||||
const { openPage } = useNavigateHelper();
|
||||
@ -47,21 +45,15 @@ export const useEnableCloud = () => {
|
||||
[openPage, workspacesService]
|
||||
);
|
||||
|
||||
const openSignIn = useCallback(
|
||||
(...args: ConfirmEnableArgs) => {
|
||||
setAuthAtom(prev => ({ ...prev, openModal: true }));
|
||||
setOnceSignedInEvent(() => {
|
||||
enableCloud(...args).catch(console.error);
|
||||
});
|
||||
},
|
||||
[enableCloud, setAuthAtom, setOnceSignedInEvent]
|
||||
);
|
||||
const openSignIn = useCallback(() => {
|
||||
setAuthAtom(prev => ({ ...prev, openModal: true }));
|
||||
}, [setAuthAtom]);
|
||||
|
||||
const signInOrEnableCloud = useCallback(
|
||||
async (...args: ConfirmEnableArgs) => {
|
||||
// not logged in, open login modal
|
||||
if (loginStatus === 'unauthenticated') {
|
||||
openSignIn(...args);
|
||||
openSignIn();
|
||||
}
|
||||
|
||||
if (loginStatus === 'authenticated') {
|
||||
|
@ -13,7 +13,6 @@ import type { LoaderFunction } from 'react-router-dom';
|
||||
import { redirect, useLoaderData } from 'react-router-dom';
|
||||
|
||||
import { authAtom } from '../atoms';
|
||||
import { setOnceSignedInEventAtom } from '../atoms/event';
|
||||
import { RouteLogic, useNavigateHelper } from '../hooks/use-navigate-helper';
|
||||
import { AuthService } from '../modules/cloud';
|
||||
|
||||
@ -59,8 +58,6 @@ export const Component = () => {
|
||||
const { jumpToSignIn } = useNavigateHelper();
|
||||
const { jumpToSubPath } = useNavigateHelper();
|
||||
|
||||
const setOnceSignedInEvent = useSetAtom(setOnceSignedInEventAtom);
|
||||
|
||||
const setAuthAtom = useSetAtom(authAtom);
|
||||
const { inviteInfo } = useLoaderData() as {
|
||||
inviteId: string;
|
||||
@ -78,7 +75,6 @@ export const Component = () => {
|
||||
useEffect(() => {
|
||||
if (loginStatus === 'unauthenticated' && !isRevalidating) {
|
||||
// We can not pass function to navigate state, so we need to save it in atom
|
||||
setOnceSignedInEvent(openWorkspace);
|
||||
jumpToSignIn(
|
||||
`/workspace/${inviteInfo.workspace.id}/all`,
|
||||
RouteLogic.REPLACE
|
||||
@ -91,7 +87,6 @@ export const Component = () => {
|
||||
loginStatus,
|
||||
openWorkspace,
|
||||
setAuthAtom,
|
||||
setOnceSignedInEvent,
|
||||
]);
|
||||
|
||||
if (loginStatus === 'authenticated') {
|
||||
|
Loading…
Reference in New Issue
Block a user