diff --git a/witchsky-static-about/index.html b/witchsky-static-about/index.html --- a/witchsky-static-about/index.html +++ b/witchsky-static-about/index.html @@ -19,6 +19,6 @@ window.location.href = "https://tangled.org/jollywhoppers.com/witchsky.app/"; -

Redirecting to GitHub README...

+

Redirecting to Tangled README...

diff --git a/src/screens/Signup/index.tsx b/src/screens/Signup/index.tsx --- a/src/screens/Signup/index.tsx +++ b/src/screens/Signup/index.tsx @@ -231,7 +231,7 @@ label={_(msg`Contact support`)} to={FEEDBACK_FORM_URL({email: state.email})} style={[!gtMobile && a.text_md]}> - Open a Github Issue + Open a Tangled Issue diff --git a/src/state/preferences/disable-followed-by-metrics.tsx b/src/state/preferences/disable-followed-by-metrics.tsx new file mode 100644 --- /dev/null +++ b/src/state/preferences/disable-followed-by-metrics.tsx @@ -0,0 +1,52 @@ +import React from 'react' + +import * as persisted from '#/state/persisted' + +// Preference: disableFollowedByMetrics – when true, disables following metrics on profiles + +type StateContext = persisted.Schema['disableFollowedByMetrics'] +// Same setter signature used across other preference modules +type SetContext = (v: persisted.Schema['disableFollowedByMetrics']) => void + +const stateContext = React.createContext( + persisted.defaults.disableFollowedByMetrics, +) +const setContext = React.createContext( + (_: persisted.Schema['disableFollowedByMetrics']) => {}, +) + +export function Provider({children}: React.PropsWithChildren<{}>) { + const [state, setState] = React.useState( + persisted.get('disableFollowedByMetrics'), + ) + + const setStateWrapped = React.useCallback( + (value: persisted.Schema['disableFollowedByMetrics']) => { + setState(value) + persisted.write('disableFollowedByMetrics', value) + }, + [setState], + ) + + React.useEffect(() => { + return persisted.onUpdate('disableFollowedByMetrics', next => { + setState(next) + }) + }, [setStateWrapped]) + + return ( + + + {children} + + + ) +} + +export function useDisableFollowedByMetrics() { + return React.useContext(stateContext) +} + +export function useSetDisableFollowedByMetrics() { + return React.useContext(setContext) +} diff --git a/src/state/preferences/disable-followers-metrics.tsx b/src/state/preferences/disable-followers-metrics.tsx new file mode 100644 --- /dev/null +++ b/src/state/preferences/disable-followers-metrics.tsx @@ -0,0 +1,52 @@ +import React from 'react' + +import * as persisted from '#/state/persisted' + +// Preference: disableFollowersMetrics – when true, disables followers metrics on profiles + +type StateContext = persisted.Schema['disableFollowersMetrics'] +// Same setter signature used across other preference modules +type SetContext = (v: persisted.Schema['disableFollowersMetrics']) => void + +const stateContext = React.createContext( + persisted.defaults.disableFollowersMetrics, +) +const setContext = React.createContext( + (_: persisted.Schema['disableFollowersMetrics']) => {}, +) + +export function Provider({children}: React.PropsWithChildren<{}>) { + const [state, setState] = React.useState( + persisted.get('disableFollowersMetrics'), + ) + + const setStateWrapped = React.useCallback( + (value: persisted.Schema['disableFollowersMetrics']) => { + setState(value) + persisted.write('disableFollowersMetrics', value) + }, + [setState], + ) + + React.useEffect(() => { + return persisted.onUpdate('disableFollowersMetrics', next => { + setState(next) + }) + }, [setStateWrapped]) + + return ( + + + {children} + + + ) +} + +export function useDisableFollowersMetrics() { + return React.useContext(stateContext) +} + +export function useSetDisableFollowersMetrics() { + return React.useContext(setContext) +} diff --git a/src/state/preferences/disable-following-metrics.tsx b/src/state/preferences/disable-following-metrics.tsx new file mode 100644 --- /dev/null +++ b/src/state/preferences/disable-following-metrics.tsx @@ -0,0 +1,52 @@ +import React from 'react' + +import * as persisted from '#/state/persisted' + +// Preference: disableFollowingMetrics – when true, disables following metrics on profiles + +type StateContext = persisted.Schema['disableFollowingMetrics'] +// Same setter signature used across other preference modules +type SetContext = (v: persisted.Schema['disableFollowingMetrics']) => void + +const stateContext = React.createContext( + persisted.defaults.disableFollowingMetrics, +) +const setContext = React.createContext( + (_: persisted.Schema['disableFollowingMetrics']) => {}, +) + +export function Provider({children}: React.PropsWithChildren<{}>) { + const [state, setState] = React.useState( + persisted.get('disableFollowingMetrics'), + ) + + const setStateWrapped = React.useCallback( + (value: persisted.Schema['disableFollowingMetrics']) => { + setState(value) + persisted.write('disableFollowingMetrics', value) + }, + [setState], + ) + + React.useEffect(() => { + return persisted.onUpdate('disableFollowingMetrics', next => { + setState(next) + }) + }, [setStateWrapped]) + + return ( + + + {children} + + + ) +} + +export function useDisableFollowingMetrics() { + return React.useContext(stateContext) +} + +export function useSetDisableFollowingMetrics() { + return React.useContext(setContext) +} diff --git a/src/state/preferences/disable-posts-metrics.tsx b/src/state/preferences/disable-posts-metrics.tsx new file mode 100644 --- /dev/null +++ b/src/state/preferences/disable-posts-metrics.tsx @@ -0,0 +1,50 @@ +import React from 'react' + +import * as persisted from '#/state/persisted' + +// Preference: disablePostsMetrics – when true, disables posts metrics on profiles + +type StateContext = persisted.Schema['disablePostsMetrics'] +// Same setter signature used across other preference modules +type SetContext = (v: persisted.Schema['disablePostsMetrics']) => void + +const stateContext = React.createContext( + persisted.defaults.disablePostsMetrics, +) +const setContext = React.createContext( + (_: persisted.Schema['disablePostsMetrics']) => {}, +) + +export function Provider({children}: React.PropsWithChildren<{}>) { + const [state, setState] = React.useState(persisted.get('disablePostsMetrics')) + + const setStateWrapped = React.useCallback( + (value: persisted.Schema['disablePostsMetrics']) => { + setState(value) + persisted.write('disablePostsMetrics', value) + }, + [setState], + ) + + React.useEffect(() => { + return persisted.onUpdate('disablePostsMetrics', next => { + setState(next) + }) + }, [setStateWrapped]) + + return ( + + + {children} + + + ) +} + +export function useDisablePostsMetrics() { + return React.useContext(stateContext) +} + +export function useSetDisablePostsMetrics() { + return React.useContext(setContext) +} diff --git a/src/view/com/auth/SplashScreen.web.tsx b/src/view/com/auth/SplashScreen.web.tsx --- a/src/view/com/auth/SplashScreen.web.tsx +++ b/src/view/com/auth/SplashScreen.web.tsx @@ -171,7 +171,7 @@ - Github + Tangled