From 77950e48c76f4a3b29d01831d43039caba29888a Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期二, 18 十一月 2025 14:12:42 +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