2023-03-13 14:29:34 +01:00
|
|
|
import { create } from 'zustand';
|
|
|
|
|
|
2023-03-20 17:08:05 +01:00
|
|
|
const useAppStore = create((set) => ({
|
|
|
|
|
captchaResponse: '',
|
|
|
|
|
setCaptchaResponse: (response) => set({ captchaResponse: response }),
|
|
|
|
|
|
2023-03-13 14:29:34 +01:00
|
|
|
bodyStyle: JSON.parse(localStorage.getItem('bodyStyle')) || {
|
|
|
|
|
background: '#ffe url(/assets/fade.png) top repeat-x',
|
|
|
|
|
color: 'maroon',
|
|
|
|
|
fontFamily: 'Helvetica, Arial, sans-serif',
|
|
|
|
|
},
|
|
|
|
|
setBodyStyle: (bodyStyle) => {
|
|
|
|
|
localStorage.setItem('bodyStyle', JSON.stringify(bodyStyle));
|
|
|
|
|
set(() => ({ bodyStyle }));
|
|
|
|
|
},
|
|
|
|
|
|
2023-03-20 17:08:05 +01:00
|
|
|
defaultSubplebbits: [],
|
|
|
|
|
setDefaultSubplebbits: (subplebbits) => set({ defaultSubplebbits: subplebbits }),
|
|
|
|
|
|
|
|
|
|
isSettingsOpen: false,
|
|
|
|
|
setIsSettingsOpen: (isOpen) => set({ isSettingsOpen: isOpen }),
|
|
|
|
|
|
2023-03-13 14:29:34 +01:00
|
|
|
selectedAddress: '',
|
|
|
|
|
setSelectedAddress: (address) => set({ selectedAddress: address }),
|
2023-03-20 17:08:05 +01:00
|
|
|
|
2023-03-13 14:29:34 +01:00
|
|
|
selectedStyle: localStorage.getItem('selectedStyle') || 'Yotsuba',
|
|
|
|
|
setSelectedStyle: (style) => {
|
|
|
|
|
localStorage.setItem('selectedStyle', style);
|
|
|
|
|
set({ selectedStyle: style });
|
|
|
|
|
},
|
2023-03-20 17:08:05 +01:00
|
|
|
|
|
|
|
|
selectedThread: '',
|
|
|
|
|
setSelectedThread: (thread) => set({ selectedThread: thread }),
|
|
|
|
|
|
|
|
|
|
selectedTitle: '',
|
|
|
|
|
setSelectedTitle: (title) => set({ selectedTitle: title }),
|
|
|
|
|
|
|
|
|
|
showPostForm: false,
|
|
|
|
|
setShowPostForm: (show) => set({ showPostForm: show }),
|
|
|
|
|
|
|
|
|
|
showPostFormLink: true,
|
|
|
|
|
setShowPostFormLink: (show) => set({ showPostFormLink: show }),
|
2023-03-13 14:29:34 +01:00
|
|
|
|
|
|
|
|
}));
|
|
|
|
|
|
2023-03-20 17:08:05 +01:00
|
|
|
export default useAppStore;
|