{"version":3,"file":"DropdownIndicator-Cqnt_SgR.js","sources":["../../../app/javascript/lib/cookies.ts","../../../app/javascript/features/ThemeManager/hooks/useTheme.ts","../../../app/javascript/features/Nav/components/Nav/DesktopNav/DropdownIndicator.tsx"],"sourcesContent":["// Function to delete a cookie by name\nexport function deleteCookie(name: string): void {\n document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`;\n}\n\n// Function to get a cookie by name\nexport function getCookie(name: string): string | null {\n const nameEQ = `${name}=`;\n const cookies = document.cookie.split(';');\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].trim();\n if (cookie.indexOf(nameEQ) === 0) {\n return cookie.substring(nameEQ.length, cookie.length);\n }\n }\n return null;\n}\n\n// Function to check if a cookie exists by name\nexport function hasCookie(name: string): boolean {\n return getCookie(name) !== null;\n}\n\n\n// Function to set a cookie by name, value, and optional attributes\nexport function setCookie(\n name: string,\n value: string,\n days?: number,\n path: string = '/',\n domain?: string,\n secure?: boolean\n): void {\n let cookieString = `${name}=${value}; path=${path};`;\n\n if (days) {\n const date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n cookieString += `expires=${date.toUTCString()};`;\n }\n\n if (domain) {\n cookieString += `domain=${domain};`;\n }\n\n if (secure) {\n cookieString += 'secure;';\n }\n\n document.cookie = cookieString;\n}","import { setCookie } from \"lib/cookies\";\nimport { useDispatch } from \"react-redux\";\nimport useCurrentTheme from \"store/ui/uiSelector\";\nimport { uiActions } from \"store/ui/uiSlice\";\nimport { ThemeType } from \"../types\";\n\nfunction disableTransitionsTemporarily() {\n document.documentElement.classList.add(\"[&_*]:!transition-none\");\n window.setTimeout(() => {\n document.documentElement.classList.remove(\"[&_*]:!transition-none\");\n }, 0);\n}\n\ninterface UseThemeType {\n theme: ThemeType;\n setTheme: (newTheme: ThemeType) => void;\n toggleTheme: () => void;\n}\n\nconst useTheme = (): UseThemeType => {\n const theme = useCurrentTheme();\n const dispatch = useDispatch();\n\n function toggleTheme() {\n disableTransitionsTemporarily();\n const isDarkMode = document.documentElement.classList.toggle(\"dark\");\n const newTheme = isDarkMode ? \"dark\" : \"light\";\n setCookie(\"theme\", newTheme);\n dispatch(uiActions.setTheme(newTheme));\n }\n\n function setTheme(newTheme: ThemeType) {\n disableTransitionsTemporarily();\n if (newTheme === \"dark\") {\n document.documentElement.classList.add(\"dark\");\n } else {\n document.documentElement.classList.remove(\"dark\");\n }\n setCookie(\"theme\", newTheme);\n dispatch(uiActions.setTheme(newTheme));\n }\n\n return {\n theme: theme,\n setTheme,\n toggleTheme,\n };\n};\n\nexport default useTheme;\n","import useTheme from \"features/ThemeManager/hooks/useTheme\";\n\n/* eslint-disable react/jsx-props-no-spreading */\n\nexport default function DropdownIndicator(props) {\n const { theme } = useTheme();\n const isDark = theme === \"dark\";\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n"],"names":["deleteCookie","name","getCookie","nameEQ","cookies","cookie","setCookie","value","days","path","domain","secure","cookieString","date","disableTransitionsTemporarily","useTheme","theme","useCurrentTheme","dispatch","useDispatch","toggleTheme","newTheme","uiActions","setTheme","DropdownIndicator","props","isDark","jsxs","jsx"],"mappings":"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"}