From 7bf0984698e43b9aa2dd879f65951318ed410390 Mon Sep 17 00:00:00 2001 From: Maze <167211895+mazeincoding@users.noreply.github.com> Date: Sat, 31 Jan 2026 00:20:04 +0100 Subject: codebase overhaul (#697) --- apps/web/src/components/language-select.tsx | 204 ---------------------------- 1 file changed, 204 deletions(-) delete mode 100644 apps/web/src/components/language-select.tsx (limited to 'apps/web/src/components/language-select.tsx') diff --git a/apps/web/src/components/language-select.tsx b/apps/web/src/components/language-select.tsx deleted file mode 100644 index 43ed632d..00000000 --- a/apps/web/src/components/language-select.tsx +++ /dev/null @@ -1,204 +0,0 @@ -import { useState, useRef, useEffect } from "react"; -import { ChevronDown, Globe } from "lucide-react"; -import { cn } from "@/lib/utils"; -import { motion } from "framer-motion"; -import ReactCountryFlag from "react-country-flag"; - -export interface Language { - code: string; - name: string; - flag?: string; -} - -interface LanguageSelectProps { - selectedCountry: string; - onSelect: (country: string) => void; - containerRef: React.RefObject; - languages: Language[]; -} - -function FlagPreloader({ languages }: { languages: Language[] }) { - return ( -
- {languages.map((language) => ( - - ))} -
- ); -} - -export function LanguageSelect({ - selectedCountry, - onSelect, - containerRef, - languages, -}: LanguageSelectProps) { - const [expanded, setExpanded] = useState(false); - const [isTapping, setIsTapping] = useState(false); - const [isClosing, setIsClosing] = useState(false); - const collapsedHeight = "2.5rem"; - const expandHeight = "12rem"; - const buttonRef = useRef(null); - - const expand = () => { - setIsTapping(true); - setTimeout(() => setIsTapping(false), 600); - setExpanded(true); - buttonRef.current?.focus(); - }; - - useEffect(() => { - if (!expanded) return; - - const handleClickOutside = (event: MouseEvent) => { - if ( - buttonRef.current && - !buttonRef.current.contains(event.target as Node) - ) { - setIsClosing(true); - setTimeout(() => setIsClosing(false), 600); - setExpanded(false); - buttonRef.current?.blur(); - } - }; - - document.addEventListener("mousedown", handleClickOutside); - return () => { - document.removeEventListener("mousedown", handleClickOutside); - }; - }, [expanded]); - - const selectedLanguage = languages.find( - (lang) => lang.code === selectedCountry - ); - - const handleSelect = ({ - code, - e, - }: { - code: string; - e: React.MouseEvent; - }) => { - e.stopPropagation(); - e.preventDefault(); - onSelect(code); - setExpanded(false); - }; - - return ( -
- - - {!expanded ? ( -
-
- {selectedCountry === "auto" ? ( - - ) : ( - - )} - - {selectedCountry === "auto" ? "Auto" : selectedLanguage?.name} - -
-
- ) : ( -
- - {languages.map((language) => ( - - ))} -
- )} -
- - - - -
- ); -} - -function LanguageButton({ - language, - onSelect, - selectedCountry, -}: { - language: Language; - onSelect: ({ - code, - e, - }: { - code: string; - e: React.MouseEvent; - }) => void; - selectedCountry: string; -}) { - return ( - - ); -} -- cgit v1.3.1