mirror of
https://github.com/aljazceru/rabbit.git
synced 2025-12-18 06:24:25 +01:00
fix: rollback h-fill-available
This commit is contained in:
@@ -1,40 +0,0 @@
|
||||
import { Accessor } from 'solid-js';
|
||||
import {
|
||||
createSignalWithStorage,
|
||||
createStorageWithSerializer,
|
||||
} from '@/hooks/createSignalWithStorage';
|
||||
|
||||
type LoginStatus = {
|
||||
loggedIn: boolean;
|
||||
};
|
||||
|
||||
type UseLoginStatus = {
|
||||
loginStatus: Accessor<LoginStatus>;
|
||||
loggedIn: () => void;
|
||||
};
|
||||
|
||||
const InitialLoginStatus = {
|
||||
loggedIn: false,
|
||||
};
|
||||
|
||||
const serializer = (loginStatus: LoginStatus): string => JSON.stringify(loginStatus);
|
||||
// TODO zod使う
|
||||
const deserializer = (json: string): LoginStatus => JSON.parse(json) as LoginStatus;
|
||||
|
||||
const storage = createStorageWithSerializer(() => window.localStorage, serializer, deserializer);
|
||||
|
||||
const [loginStatus, setLoginStatus] = createSignalWithStorage(
|
||||
'RabbitLoginStatus',
|
||||
InitialLoginStatus,
|
||||
storage,
|
||||
);
|
||||
|
||||
const useLoginStatus = (): UseLoginStatus => {
|
||||
const loggedIn = () => {
|
||||
setLoginStatus((current) => ({ ...current, loggedIn: true }));
|
||||
};
|
||||
|
||||
return { loginStatus, loggedIn };
|
||||
};
|
||||
|
||||
export default useLoginStatus;
|
||||
52
src/hooks/usePersistStatus.ts
Normal file
52
src/hooks/usePersistStatus.ts
Normal file
@@ -0,0 +1,52 @@
|
||||
import { Accessor } from 'solid-js';
|
||||
import {
|
||||
createSignalWithStorage,
|
||||
createStorageWithSerializer,
|
||||
} from '@/hooks/createSignalWithStorage';
|
||||
|
||||
type PersistStatus = {
|
||||
loggedIn: boolean;
|
||||
agreeWithNostrBuild: boolean;
|
||||
};
|
||||
|
||||
type UsePersistStatus = {
|
||||
persistStatus: Accessor<PersistStatus>;
|
||||
loggedIn: () => void;
|
||||
};
|
||||
|
||||
const InitialLoginStatus = {
|
||||
loggedIn: false,
|
||||
agreeWithNostrBuild: false,
|
||||
};
|
||||
|
||||
const serializer = (persistStatus: PersistStatus): string => JSON.stringify(persistStatus);
|
||||
// TODO zod使う
|
||||
const deserializer = (json: string): PersistStatus => JSON.parse(json) as PersistStatus;
|
||||
|
||||
const storage = createStorageWithSerializer(() => window.localStorage, serializer, deserializer);
|
||||
|
||||
const [persistStatus, setLoginStatus] = createSignalWithStorage(
|
||||
'RabbitLoginStatus',
|
||||
InitialLoginStatus,
|
||||
storage,
|
||||
);
|
||||
|
||||
const usePersistStatus = (): UsePersistStatus => {
|
||||
const loggedIn = () => {
|
||||
setLoginStatus((current) => ({ ...current, loggedIn: true }));
|
||||
};
|
||||
|
||||
return {
|
||||
persistStatus: () => ({
|
||||
get loggedIn() {
|
||||
return persistStatus().loggedIn ?? false;
|
||||
},
|
||||
get agreeWithNostrBuild() {
|
||||
return persistStatus().agreeWithNostrBuild ?? false;
|
||||
},
|
||||
}),
|
||||
loggedIn,
|
||||
};
|
||||
};
|
||||
|
||||
export default usePersistStatus;
|
||||
@@ -1,6 +1,7 @@
|
||||
import { createSignal, onMount, Switch, Match, type Component } from 'solid-js';
|
||||
import { useNavigate } from '@solidjs/router';
|
||||
import useLoginStatus from '@/hooks/useLoginStatus';
|
||||
import usePersistStatus from '@/hooks/usePersistStatus';
|
||||
import { persistQueryClient } from '@tanstack/react-query-persist-client';
|
||||
|
||||
type SignerStatus = 'checking' | 'available' | 'unavailable';
|
||||
|
||||
@@ -30,7 +31,7 @@ const useSignerStatus = () => {
|
||||
const Hello: Component = () => {
|
||||
const signerStatus = useSignerStatus();
|
||||
const navigate = useNavigate();
|
||||
const { loginStatus, loggedIn } = useLoginStatus();
|
||||
const { persistStatus, loggedIn } = usePersistStatus();
|
||||
|
||||
const handleLogin = () => {
|
||||
loggedIn();
|
||||
@@ -38,7 +39,7 @@ const Hello: Component = () => {
|
||||
};
|
||||
|
||||
onMount(() => {
|
||||
if (loginStatus().loggedIn) {
|
||||
if (persistStatus().loggedIn) {
|
||||
navigate('/');
|
||||
}
|
||||
});
|
||||
|
||||
@@ -14,13 +14,13 @@ import useFollowings from '@/nostr/useFollowings';
|
||||
import usePubkey from '@/nostr/usePubkey';
|
||||
|
||||
import { useMountShortcutKeys } from '@/hooks/useShortcutKeys';
|
||||
import useLoginStatus from '@/hooks/useLoginStatus';
|
||||
import usePersistStatus from '@/hooks/usePersistStatus';
|
||||
import ensureNonNull from '@/utils/ensureNonNull';
|
||||
|
||||
const Home: Component = () => {
|
||||
useMountShortcutKeys();
|
||||
const navigate = useNavigate();
|
||||
const { loginStatus } = useLoginStatus();
|
||||
const { persistStatus } = usePersistStatus();
|
||||
|
||||
const pool = usePool();
|
||||
const { config } = useConfig();
|
||||
@@ -129,13 +129,13 @@ const Home: Component = () => {
|
||||
*/
|
||||
|
||||
onMount(() => {
|
||||
if (!loginStatus().loggedIn) {
|
||||
if (!persistStatus().loggedIn) {
|
||||
navigate('/hello');
|
||||
}
|
||||
});
|
||||
|
||||
return (
|
||||
<div class="h-fill-available flex h-screen w-screen flex-row overflow-hidden">
|
||||
<div class="flex h-screen w-screen flex-row overflow-hidden">
|
||||
<SideBar />
|
||||
<div class="flex h-full flex-row overflow-y-hidden overflow-x-scroll">
|
||||
<Column name="ホーム" columnIndex={1} width="widest">
|
||||
|
||||
Reference in New Issue
Block a user