1
0
mirror of https://github.com/tooot-app/app synced 2025-06-05 22:19:13 +02:00

Restructure some files

This commit is contained in:
Zhiyuan Zheng
2020-12-29 16:19:04 +01:00
parent b92a01e2a4
commit e841409523
18 changed files with 331 additions and 285 deletions

View File

@ -1,61 +1,28 @@
import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit'
import { RootState } from '@root/store'
// import client from 'src/api/client'
import * as Analytics from 'expo-firebase-analytics'
export type SettingsState = {
language: 'zh' | 'en' | undefined
theme: 'light' | 'dark' | 'auto'
browser: 'internal' | 'external'
analytics: boolean
}
const initialState = {
language: undefined,
theme: 'auto',
browser: 'internal'
browser: 'internal',
analytics: false
}
// export const updateLocal = createAsyncThunk(
// 'instances/updateLocal',
// async ({
// url,
// token
// }: {
// url?: InstancesState['local']['url']
// token?: InstancesState['local']['token']
// }) => {
// if (!url || !token) {
// return initialStateLocal
// }
// const {
// body: { id }
// } = await client({
// method: 'get',
// instance: 'remote',
// instanceUrl: url,
// endpoint: `accounts/verify_credentials`,
// headers: { Authorization: `Bearer ${token}` }
// })
// const { body: preferences } = await client({
// method: 'get',
// instance: 'remote',
// instanceUrl: url,
// endpoint: `preferences`,
// headers: { Authorization: `Bearer ${token}` }
// })
// return {
// url,
// token,
// account: {
// id,
// preferences
// }
// }
// }
// )
export const changeAnalytics = createAsyncThunk(
'settings/changeAnalytics',
async (newValue: SettingsState['analytics']) => {
await Analytics.setAnalyticsCollectionEnabled(newValue)
return newValue
}
)
const settingsSlice = createSlice({
name: 'settings',
@ -79,17 +46,19 @@ const settingsSlice = createSlice({
) => {
state.browser = action.payload
}
},
extraReducers: builder => {
builder.addCase(changeAnalytics.fulfilled, (state, action) => {
state.analytics = action.payload
})
}
// extraReducers: builder => {
// builder.addCase(updateLocal.fulfilled, (state, action) => {
// state.local = action.payload
// })
// }
})
export const getSettingsLanguage = (state: RootState) => state.settings.language
export const getSettingsTheme = (state: RootState) => state.settings.theme
export const getSettingsBrowser = (state: RootState) => state.settings.browser
export const getSettingsAnalytics = (state: RootState) =>
state.settings.analytics
export const {
changeLanguage,