diff --git a/src/screens/Signup/index.tsx b/src/screens/Signup/index.tsx index 3085eb63d..50ec0b9d9 100644 --- a/src/screens/Signup/index.tsx +++ b/src/screens/Signup/index.tsx @@ -231,7 +231,7 @@ export function Signup({ 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 index 000000000..be1f7e442 --- /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 index 000000000..0c7f36998 --- /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 index 000000000..e4da9d4fb --- /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 index 000000000..e4bd0b178 --- /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 index 9246e8a18..ae7ca2494 100644 --- a/src/view/com/auth/SplashScreen.web.tsx +++ b/src/view/com/auth/SplashScreen.web.tsx @@ -171,7 +171,7 @@ function Footer() { - Github + Tangled diff --git a/witchsky-static-about/index.html b/witchsky-static-about/index.html index 59ca84ad8..0b67870b4 100644 --- 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...