From a430284aa21e3ae1f0d5654e55b2ad2852519cc2 Mon Sep 17 00:00:00 2001 From: wwf <yearningwang@iqtogether.com> Date: 星期三, 04 六月 2025 15:17:49 +0800 Subject: [PATCH] 初始化 --- app/components/base/select/locale.tsx | 91 +++++++++++++++++++++++++++++++++++++-------- 1 files changed, 74 insertions(+), 17 deletions(-) diff --git a/app/components/base/select/locale.tsx b/app/components/base/select/locale.tsx index 8981f09..8b89c66 100644 --- a/app/components/base/select/locale.tsx +++ b/app/components/base/select/locale.tsx @@ -1,5 +1,5 @@ 'use client' -import { Menu, MenuButton, MenuItem, MenuItems, Transition } from '@headlessui/react' +import { Menu, Transition } from '@headlessui/react' import { Fragment } from 'react' import { GlobeAltIcon } from '@heroicons/react/24/outline' @@ -21,10 +21,14 @@ <div className="w-56 text-right"> <Menu as="div" className="relative inline-block text-left"> <div> - <MenuButton className="h-[44px]justify-center inline-flex w-full items-center rounded-lg border border-components-button-secondary-border px-[10px] py-[6px] text-[13px] font-medium text-text-primary hover:bg-state-base-hover"> - <GlobeAltIcon className="mr-1 h-5 w-5" aria-hidden="true" /> + <Menu.Button className="inline-flex w-full h-[44px]justify-center items-center + rounded-lg px-[10px] py-[6px] + text-gray-900 text-[13px] font-medium + border border-gray-200 + hover:bg-gray-100"> + <GlobeAltIcon className="w-5 h-5 mr-1" aria-hidden="true" /> {item?.name} - </MenuButton> + </Menu.Button> </div> <Transition as={Fragment} @@ -35,25 +39,78 @@ leaveFrom="transform opacity-100 scale-100" leaveTo="transform opacity-0 scale-95" > - <MenuItems className="absolute right-0 z-10 mt-2 w-[200px] origin-top-right divide-y divide-divider-regular rounded-md bg-components-panel-bg shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none"> + <Menu.Items className="absolute right-0 mt-2 w-[200px] origin-top-right divide-y divide-gray-100 rounded-md bg-white shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none z-10"> <div className="px-1 py-1 "> {items.map((item) => { - return <MenuItem key={item.value}> - <button - className={'group flex w-full items-center rounded-lg px-3 py-2 text-sm text-text-secondary data-[active]:bg-state-base-hover'} - onClick={(evt) => { - evt.preventDefault() - onChange && onChange(item.value) - }} - > - {item.name} - </button> - </MenuItem> + return <Menu.Item key={item.value}> + {({ active }) => ( + <button + className={`${active ? 'bg-gray-100' : '' + } group flex w-full items-center rounded-lg px-3 py-2 text-sm text-gray-700`} + onClick={(evt) => { + evt.preventDefault() + onChange && onChange(item.value) + }} + > + {item.name} + </button> + )} + </Menu.Item> })} </div> - </MenuItems> + </Menu.Items> + </Transition> + </Menu> + </div> + ) +} + +export function InputSelect({ + items, + value, + onChange, +}: ISelectProps) { + const item = items.filter(item => item.value === value)[0] + return ( + <div className="w-full"> + <Menu as="div" className="w-full"> + <div> + <Menu.Button className="appearance-none block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm placeholder-gray-400 sm:text-sm h-[38px] text-left"> + {item?.name} + </Menu.Button> + </div> + <Transition + as={Fragment} + enter="transition ease-out duration-100" + enterFrom="transform opacity-0 scale-95" + enterTo="transform opacity-100 scale-100" + leave="transition ease-in duration-75" + leaveFrom="transform opacity-100 scale-100" + leaveTo="transform opacity-0 scale-95" + > + <Menu.Items className="absolute right-0 mt-2 w-full origin-top-right divide-y divide-gray-100 rounded-md bg-white shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none z-10"> + <div className="px-1 py-1 "> + {items.map((item) => { + return <Menu.Item key={item.value}> + {({ active }) => ( + <button + className={`${active ? 'bg-gray-100' : '' + } group flex w-full items-center rounded-md px-2 py-2 text-sm`} + onClick={() => { + onChange && onChange(item.value) + }} + > + {item.name} + </button> + )} + </Menu.Item> + })} + + </div> + + </Menu.Items> </Transition> </Menu> </div> -- Gitblit v1.8.0