refactor: update layout structure in SubviewLayout and enhance renderValue type in ResponsiveSelect

- Modified SubviewLayout to use a div wrapper for improved layout management and added overflow handling.
- Updated the renderValue prop type in ResponsiveSelect to accept a ResponsiveSelectItem instead of a string for better type safety.

Signed-off-by: Innei <tukon479@gmail.com>
This commit is contained in:
Innei 2025-06-13 23:13:57 +08:00
parent 3578188e02
commit b6bccdf820
No known key found for this signature in database
GPG Key ID: 0F62D33977F021F7
2 changed files with 8 additions and 6 deletions

View File

@ -17,7 +17,7 @@ export const SubviewLayout = () => {
})
return (
<>
<div className="flex h-svh flex-col">
<HeaderTopReturnBackButton className="fixed z-[11] m-3" />
<m.div
@ -38,8 +38,9 @@ export const SubviewLayout = () => {
</div>
<div />
</m.div>
<Outlet />
</>
<div className="h-0 flex-1 overflow-y-auto">
<Outlet />
</div>
</div>
)
}

View File

@ -15,7 +15,7 @@ export interface ResponsiveSelectProps {
onValueChange?: (value: string) => void
placeholder?: string
items: ResponsiveSelectItem[]
renderValue?: (value: string) => React.ReactNode
renderValue?: (item: ResponsiveSelectItem) => React.ReactNode
renderItem?: (item: ResponsiveSelectItem) => React.ReactNode
size?: "sm" | "default"
@ -69,7 +69,8 @@ export const ResponsiveSelect = ({
)}
>
<span className="flex">
{(renderValue?.(valueInner) ?? valueToLabelMap[valueInner]) || (
{(renderValue?.(items.find((item) => item.value === valueInner)!) ??
valueToLabelMap[valueInner]) || (
<span className="text-text-tertiary">{placeholder}</span>
)}
</span>