38
loading...
This website collects cookies to deliver better user experience
redux
/sagas
helps you keep the business logic separate from the UI.const SCollect = function* GSCollect(action) {
if (!__DEV__ && action.meta) {
let content = JSON.stringify(action.payload);
Analytics.trackEvent(action.type, {
payload: content,
});
}
};
export const sagas = {
collect: takeEvery("*", SCollect),
};
const env = createSlice({
name: "env",
initialState: envInitialState,
reducers: {
setup: (state, { payload }: PayloadAction<EnvSetup>) => {
state.colors = themes[payload.theme];
state.version = payload.version;
},
setRefreshing: (state, { payload }: PayloadAction<boolean>) => {
state.refreshing = payload;
},
setLoadingApps: (state, { payload }: PayloadAction<boolean>) => {
state.loadingApps = payload;
},
},
extraReducers: {
[setTheme.type]: (state: EnvState, { payload }: PayloadAction<Theme>) => {
state.colors = themes[payload];
},
},
});
tailwindcss
offered everything I needed to style my mobile app, so I was very satisfied with how everything turned out.const useEnvStore = create<Env>(
persist(
(set) => ({
hydrated: false,
firstRun: true,
clearFirstRun: () => set({ firstRun: false }),
setHydrated: () => set({ hydrated: true }),
}),
{
name: 'env',
getStorage: () => storage,
whitelist: ['firstRun'],
onRehydrateStorage: () => (state, error) => {
if (state) {
state.setHydrated()
}
},
},
),
)
const order = useServers((state) => state.order);
const setCurrent = useServers((state) => state.setCurrent);
const servers = useServers((state) => state.items);
const refreshing = useServers((state) => state.refreshing);
const refresh = useServers((state) => state.refresh);
const deleteServer = useServers((state) => state.deleteServer);