evijit HF Staff commited on
Commit
5e2801e
·
verified ·
1 Parent(s): 2fd6a71

Honor ?mode= query param (summary/policy|research) for embeds and deep-links

Browse files
components/audience-mode-provider.tsx CHANGED
@@ -19,6 +19,22 @@ export function AudienceModeProvider({ children }: { children: React.ReactNode }
19
  const [mode, setModeState] = useState<AudienceMode>("research")
20
 
21
  useEffect(() => {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  const storedMode = safeStorage().getItem(STORAGE_KEY)
23
  if (storedMode === "research" || storedMode === "policy") {
24
  setModeState(storedMode)
 
19
  const [mode, setModeState] = useState<AudienceMode>("research")
20
 
21
  useEffect(() => {
22
+ // A `?mode=` query param (used by external embeds / deep-links) takes
23
+ // precedence over the stored preference, so a link can open a card in a
24
+ // specific reader mode. Accepts friendly aliases; `summary` == `policy`.
25
+ const requested = new URLSearchParams(window.location.search)
26
+ .get("mode")
27
+ ?.toLowerCase()
28
+ const fromQuery: AudienceMode | null =
29
+ requested === "policy" || requested === "summary"
30
+ ? "policy"
31
+ : requested === "research" || requested === "researcher"
32
+ ? "research"
33
+ : null
34
+ if (fromQuery) {
35
+ setModeState(fromQuery)
36
+ return
37
+ }
38
  const storedMode = safeStorage().getItem(STORAGE_KEY)
39
  if (storedMode === "research" || storedMode === "policy") {
40
  setModeState(storedMode)