diff options
author | Eric Bailey <git@esb.lol> | 2023-11-21 10:57:34 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-21 10:57:34 -0600 |
commit | f18b9b32b0d296c8d19dc06956699f95c0af9be2 (patch) | |
tree | d0a9287debdaec187042f9d277fbfece6b8c411e /src/state/session/index.tsx | |
parent | 71b59021b9e2cea7241622ef7ae51fbd2bd687f9 (diff) | |
download | voidsky-f18b9b32b0d296c8d19dc06956699f95c0af9be2.tar.zst |
PWI Base (#1964)
* Base work for public view * Make default moderation settings more restrictive * Fix type * Handle showing sign-in on authed actions * Fix hoc logic * Simplify prefs logic * Remove duplicate method * Add todo * Clean up RepostButton.web * Fix x button color * Add todo * Retain existing label prefs for now, use separate logged out settings * Clean up useAuthedMethod, rename to useRequireAuth * Add todos * Move dismiss logic to withAuthRequired * Ooops add web * Block public view in prod * Add todo * Fix bad import
Diffstat (limited to 'src/state/session/index.tsx')
-rw-r--r-- | src/state/session/index.tsx | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/state/session/index.tsx b/src/state/session/index.tsx index 97bd6e976..d7541295b 100644 --- a/src/state/session/index.tsx +++ b/src/state/session/index.tsx @@ -8,6 +8,7 @@ import * as persisted from '#/state/persisted' import {PUBLIC_BSKY_AGENT} from '#/state/queries' import {IS_PROD} from '#/lib/constants' import {emitSessionLoaded, emitSessionDropped} from '../events' +import {useLoggedOutViewControls} from '#/state/shell/logged-out' let __globalAgent: BskyAgent = PUBLIC_BSKY_AGENT @@ -515,3 +516,19 @@ export function useSession() { export function useSessionApi() { return React.useContext(ApiContext) } + +export function useRequireAuth() { + const {hasSession} = useSession() + const {setShowLoggedOut} = useLoggedOutViewControls() + + return React.useCallback( + (fn: () => void) => { + if (hasSession) { + fn() + } else { + setShowLoggedOut(true) + } + }, + [hasSession, setShowLoggedOut], + ) +} |