This commit is contained in:
2023-10-12 09:13:06 +07:00
parent 3b46e71525
commit 35650a40f2
36 changed files with 444 additions and 1447 deletions

View File

@@ -1,22 +0,0 @@
import { create } from 'zustand';
import { createJSONStorage, persist } from 'zustand/middleware';
interface BrowseState {
data: Array<{ title: string; data: string[] }>;
setData: ({ title, data }: { title: string; data: string[] }) => void;
}
export const useBrowse = create<BrowseState>()(
persist(
(set) => ({
data: [],
setData: (data) => {
set((state) => ({ data: [...state.data, data] }));
},
}),
{
name: 'browseUsers',
storage: createJSONStorage(() => localStorage),
}
)
);

View File

@@ -1,42 +0,0 @@
import { create } from 'zustand';
import { createJSONStorage, persist } from 'zustand/middleware';
interface StrongholdState {
privkey: null | string;
walletConnectURL: null | string;
isFetched: null | boolean;
setPrivkey: (privkey: string) => void;
setWalletConnectURL: (uri: string) => void;
clearPrivkey: () => void;
setIsFetched: () => void;
reset: () => void;
}
export const useStronghold = create<StrongholdState>()(
persist(
(set) => ({
privkey: null,
walletConnectURL: null,
isFetched: false,
setPrivkey: (privkey: string) => {
set({ privkey: privkey });
},
setWalletConnectURL: (uri: string) => {
set({ walletConnectURL: uri });
},
clearPrivkey: () => {
set({ privkey: null });
},
setIsFetched: () => {
set({ isFetched: true });
},
reset: () => {
set({ privkey: null, walletConnectURL: null, isFetched: false });
},
}),
{
name: 'stronghold',
storage: createJSONStorage(() => sessionStorage),
}
)
);

View File

@@ -7,10 +7,12 @@ import { Widget, WidgetGroup } from '@utils/types';
interface WidgetState {
widgets: null | Array<Widget>;
isFetched: boolean;
fetchWidgets: (db: LumeStorage) => void;
setWidget: (db: LumeStorage, { kind, title, content }: Widget) => void;
removeWidget: (db: LumeStorage, id: string) => void;
reorderWidget: (id: string, position: number) => void;
setIsFetched: () => void;
}
export const WidgetKinds = {
@@ -120,6 +122,7 @@ export const useWidgets = create<WidgetState>()(
persist(
(set) => ({
widgets: null,
isFetched: false,
fetchWidgets: async (db: LumeStorage) => {
const dbWidgets = await db.getWidgets();
console.log('db widgets: ', dbWidgets);
@@ -142,7 +145,7 @@ export const useWidgets = create<WidgetState>()(
await db.removeWidget(id);
set((state) => ({ widgets: state.widgets.filter((widget) => widget.id !== id) }));
},
reorderWidget: (id: string, position: number) =>
reorderWidget: (id: string, position: number) => {
set((state) => {
const widgets = [...state.widgets];
const widget = widgets.find((widget) => widget.id === id);
@@ -153,7 +156,11 @@ export const useWidgets = create<WidgetState>()(
widgets.splice(position, 0, widget);
return { widgets };
}),
});
},
setIsFetched: () => {
set({ isFetched: true });
},
}),
{
name: 'widgets',