ai/at
1
0
Files
at/ios/patching/020-social-app-ios-bypass-age-assurance.patch
2025-12-07 18:41:05 +09:00

114 lines
3.8 KiB
Diff

diff --git a/src/ageAssurance/index.tsx b/src/ageAssurance/index.tsx
index 9a0a9c9d5..7c25a2291 100644
--- a/src/ageAssurance/index.tsx
+++ b/src/ageAssurance/index.tsx
@@ -1,20 +1,13 @@
-import {createContext, useCallback, useContext, useEffect, useMemo} from 'react'
+import { createContext, useContext, useMemo } from 'react'
-import {useGetAndRegisterPushToken} from '#/lib/notifications/notifications'
-import {Provider as RedirectOverlayProvider} from '#/ageAssurance/components/RedirectOverlay'
-import {AgeAssuranceDataProvider} from '#/ageAssurance/data'
-import {useAgeAssuranceDataContext} from '#/ageAssurance/data'
-import {logger} from '#/ageAssurance/logger'
-import {
- useAgeAssuranceState,
- useOnAgeAssuranceAccessUpdate,
-} from '#/ageAssurance/state'
+import { Provider as RedirectOverlayProvider } from '#/ageAssurance/components/RedirectOverlay'
+import { AgeAssuranceDataProvider } from '#/ageAssurance/data'
+import { logger } from '#/ageAssurance/logger'
import {
AgeAssuranceAccess,
type AgeAssuranceState,
AgeAssuranceStatus,
} from '#/ageAssurance/types'
-import {isUserUnderAdultAge} from '#/ageAssurance/util'
export {
prefetchConfig as prefetchAgeAssuranceConfig,
@@ -23,7 +16,7 @@ export {
usePatchOtherRequiredData as usePatchAgeAssuranceOtherRequiredData,
usePatchServerState as usePatchAgeAssuranceServerState,
} from '#/ageAssurance/data'
-export {logger} from '#/ageAssurance/logger'
+export { logger } from '#/ageAssurance/logger'
const AgeAssuranceStateContext = createContext<{
Access: typeof AgeAssuranceAccess
@@ -56,7 +49,7 @@ export function useAgeAssurance() {
return useContext(AgeAssuranceStateContext)
}
-export function Provider({children}: {children: React.ReactNode}) {
+export function Provider({ children }: { children: React.ReactNode }) {
return (
<AgeAssuranceDataProvider>
<InnerProvider>
@@ -66,44 +59,31 @@ export function Provider({children}: {children: React.ReactNode}) {
)
}
-function InnerProvider({children}: {children: React.ReactNode}) {
- const state = useAgeAssuranceState()
- const {data} = useAgeAssuranceDataContext()
- const getAndRegisterPushToken = useGetAndRegisterPushToken()
-
- const handleAccessUpdate = useCallback(
- (s: AgeAssuranceState) => {
- getAndRegisterPushToken({
- isAgeRestricted: s.access !== AgeAssuranceAccess.Full,
- })
- },
- [getAndRegisterPushToken],
+function InnerProvider({ children }: { children: React.ReactNode }) {
+ // Completely ignore internal state and force Full access
+ const flags = useMemo(
+ () => ({
+ adultContentDisabled: false,
+ chatDisabled: false,
+ }),
+ [],
)
- useOnAgeAssuranceAccessUpdate(handleAccessUpdate)
- useEffect(() => {
- logger.debug(`useAgeAssuranceState`, {state})
- }, [state])
+ const contextValue = useMemo(() => {
+ return {
+ Access: AgeAssuranceAccess,
+ Status: AgeAssuranceStatus,
+ state: {
+ lastInitiatedAt: undefined,
+ status: AgeAssuranceStatus.Unknown,
+ access: AgeAssuranceAccess.Full,
+ },
+ flags,
+ }
+ }, [flags])
return (
- <AgeAssuranceStateContext.Provider
- value={useMemo(() => {
- const chatDisabled = state.access !== AgeAssuranceAccess.Full
- const isUnderage = data?.birthdate
- ? isUserUnderAdultAge(data.birthdate)
- : true
- const adultContentDisabled =
- state.access !== AgeAssuranceAccess.Full || isUnderage
- return {
- Access: AgeAssuranceAccess,
- Status: AgeAssuranceStatus,
- state,
- flags: {
- adultContentDisabled,
- chatDisabled,
- },
- }
- }, [state, data])}>
+ <AgeAssuranceStateContext.Provider value={contextValue}>
{children}
</AgeAssuranceStateContext.Provider>
)