fix: rollback h-fill-available

This commit is contained in:
Shusui MOYATANI
2023-03-18 12:11:03 +09:00
parent 066589519d
commit fd7da8ad7c
4 changed files with 60 additions and 47 deletions

View File

@@ -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;

View 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;

View File

@@ -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('/');
}
});

View File

@@ -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">