diff --git a/src/components/buttonWithIcon.tsx b/src/components/buttonWithIcon.tsx new file mode 100644 index 0000000..b4e3b0b --- /dev/null +++ b/src/components/buttonWithIcon.tsx @@ -0,0 +1,51 @@ +import { cn } from "@/lib"; +import React, { ButtonHTMLAttributes, forwardRef } from "react"; +import { Button } from "./ui/button"; + +interface Props extends ButtonHTMLAttributes { + startIcon?: React.ReactElement; + endIcon?: React.ReactElement; + divClassName?: string; +} + +export const ButtonWithIcon = forwardRef( + ( + { className, type, startIcon, endIcon, divClassName, children, ...props }, + ref + ) => { + const StartIcon = startIcon; + const EndIcon = endIcon; + + return ( + + ); + } +); diff --git a/src/features/settings/components/tabs/accounts/addAccountButton.tsx b/src/features/settings/components/tabs/accounts/addAccountButton.tsx index 3e075c4..a39ce6d 100644 --- a/src/features/settings/components/tabs/accounts/addAccountButton.tsx +++ b/src/features/settings/components/tabs/accounts/addAccountButton.tsx @@ -1,4 +1,4 @@ -import { Button } from "@/components/ui/button"; +import { ButtonWithIcon } from "@/components/buttonWithIcon"; import { Dialog } from "@/components/ui/dialog"; import { DropdownMenu, @@ -10,18 +10,32 @@ import { } from "@/components/ui/dropdown-menu"; import RealDebridDialogContent from "@/features/realDebrid/components/realDebridDialogContent"; import TorBoxDialogContent from "@/features/torBox/components/torBoxDialogContent"; +import { cn } from "@/lib"; import { useAccountServices } from "@/stores/account-services"; +import { ChevronDown } from "lucide-react"; import { useState } from "react"; const AddAccountButton = () => { const [isRealDebridDialogOpen, setIsRealDebridDialogOpen] = useState(false); const [isTorBoxDialogOpen, setIsTorBoxDialogOpen] = useState(false); + const [open, setOpen] = useState(false); const { realDebrid, torBox } = useAccountServices(); return ( - + - + + } + > + Add Account + Choose an account diff --git a/src/features/settings/components/tabs/accounts/index.tsx b/src/features/settings/components/tabs/accounts/index.tsx index 32ebf12..4ff7057 100644 --- a/src/features/settings/components/tabs/accounts/index.tsx +++ b/src/features/settings/components/tabs/accounts/index.tsx @@ -18,8 +18,10 @@ const AccountSettings = () => { -
- +
+
+ +
{ const { languages, i18n } = useLanguageContext(); const { settings, updateSetting } = useSettings(); + const [open, setOpen] = useState(false); const currentLanguage = useMemo(() => { return Object.entries(languages).find(([key, _value]) => { @@ -23,12 +26,23 @@ const LanguageDropdown = () => { }, [languages, settings.language, i18n.language]); return ( - + - + + } + > + {currentLanguage?.[1].nativeName} + - + Choose Language {Object.entries(languages).map(([key, value]) => ( diff --git a/src/features/settings/components/tabs/general/settings/title-bar.tsx b/src/features/settings/components/tabs/general/settings/title-bar.tsx index f84e53d..7f43fec 100644 --- a/src/features/settings/components/tabs/general/settings/title-bar.tsx +++ b/src/features/settings/components/tabs/general/settings/title-bar.tsx @@ -1,5 +1,5 @@ import { SettingsTitleBarStyle } from "@/@types"; -import { Button } from "@/components/ui/button"; +import { ButtonWithIcon } from "@/components/buttonWithIcon"; import { DropdownMenu, DropdownMenuContent, @@ -10,16 +10,31 @@ import { DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { useSettings } from "@/hooks"; +import { cn } from "@/lib"; +import { ChevronDown } from "lucide-react"; +import { useState } from "react"; const TitleBarDropdown = () => { const { settings, updateSetting } = useSettings(); + const [open, setOpen] = useState(false); return ( - + - + + } + > + {settings?.titleBarStyle} + - + Title Bar Style