Fixed collapse state of website select.

This commit is contained in:
Mike Cao 2026-02-07 23:56:06 -08:00
parent 08e4da27c1
commit d26ed3b949
5 changed files with 48 additions and 15 deletions

View file

@ -66,7 +66,7 @@
"@react-spring/web": "^10.0.3",
"@svgr/cli": "^8.1.0",
"@tanstack/react-query": "^5.90.20",
"@umami/react-zen": "^0.242.0",
"@umami/react-zen": "^0.243.0",
"@umami/redis-client": "^0.30.0",
"bcryptjs": "^3.0.2",
"chalk": "^5.6.2",
@ -158,6 +158,7 @@
"stylelint-config-recommended": "^14.0.0",
"tar": "^7.5.7",
"ts-jest": "^29.4.6",
"ts-morph": "^27.0.2",
"ts-node": "^10.9.1",
"tsup": "^8.5.0",
"tsx": "^4.19.0",

40
pnpm-lock.yaml generated
View file

@ -42,8 +42,8 @@ importers:
specifier: ^5.90.20
version: 5.90.20(react@19.2.4)
'@umami/react-zen':
specifier: ^0.242.0
version: 0.242.0(@types/react@19.2.13)(immer@10.2.0)(react-aria-components@1.14.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tailwindcss@4.1.18)(use-sync-external-store@1.6.0(react@19.2.4))
specifier: ^0.243.0
version: 0.243.0(@types/react@19.2.13)(immer@10.2.0)(react-aria-components@1.14.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tailwindcss@4.1.18)(use-sync-external-store@1.6.0(react@19.2.4))
'@umami/redis-client':
specifier: ^0.30.0
version: 0.30.0
@ -312,6 +312,9 @@ importers:
ts-jest:
specifier: ^29.4.6
version: 29.4.6(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.11)(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.18))(@types/node@24.10.11)(typescript@5.9.3)))(typescript@5.9.3)
ts-morph:
specifier: ^27.0.2
version: 27.0.2
ts-node:
specifier: ^10.9.1
version: 10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.18))(@types/node@24.10.11)(typescript@5.9.3)
@ -2906,6 +2909,9 @@ packages:
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
'@ts-morph/common@0.28.1':
resolution: {integrity: sha512-W74iWf7ILp1ZKNYXY5qbddNaml7e9Sedv5lvU1V8lftlitkc9Pq1A+jlH23ltDgWYeZFFEqGCD1Ies9hqu3O+g==}
'@tsconfig/node10@1.0.11':
resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==}
@ -3002,8 +3008,8 @@ packages:
'@types/yauzl@2.10.3':
resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
'@umami/react-zen@0.242.0':
resolution: {integrity: sha512-dahKoYDrFg1MVjww6M0RpUacFidHoXBRuFKOe68AZ9PWQaXX/kUweo/5m1YzmUMcnouwwCer/rAzCfHJ2Vso9w==}
'@umami/react-zen@0.243.0':
resolution: {integrity: sha512-DDtumoIHqNSPIeqO0asfqurZwYsncbG2viVzj9YQJVd8TPMlwPOkef9hd18W9WlmQDU0KXQ6Ii89MXmNjrkvYg==}
peerDependencies:
react: ^18.0.0 || ^19.0.0
react-aria-components: ^1.0.0
@ -3405,6 +3411,9 @@ packages:
resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
code-block-writer@13.0.3:
resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==}
collect-v8-coverage@1.0.2:
resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
@ -5406,6 +5415,9 @@ packages:
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines: {node: '>=8'}
path-browserify@1.0.1:
resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
path-exists@4.0.0:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
engines: {node: '>=8'}
@ -6826,6 +6838,9 @@ packages:
jest-util:
optional: true
ts-morph@27.0.2:
resolution: {integrity: sha512-fhUhgeljcrdZ+9DZND1De1029PrE+cMkIP7ooqkLRTrRLTqcki2AstsyJm0vRNbTbVCNJ0idGlbBrfqc7/nA8w==}
ts-node@10.9.2:
resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
hasBin: true
@ -9968,6 +9983,12 @@ snapshots:
'@trysound/sax@0.2.0': {}
'@ts-morph/common@0.28.1':
dependencies:
minimatch: 10.0.3
path-browserify: 1.0.1
tinyglobby: 0.2.14
'@tsconfig/node10@1.0.11': {}
'@tsconfig/node12@1.0.11': {}
@ -10070,7 +10091,7 @@ snapshots:
'@types/node': 24.10.11
optional: true
'@umami/react-zen@0.242.0(@types/react@19.2.13)(immer@10.2.0)(react-aria-components@1.14.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tailwindcss@4.1.18)(use-sync-external-store@1.6.0(react@19.2.4))':
'@umami/react-zen@0.243.0(@types/react@19.2.13)(immer@10.2.0)(react-aria-components@1.14.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tailwindcss@4.1.18)(use-sync-external-store@1.6.0(react@19.2.4))':
dependencies:
'@internationalized/date': 3.11.0
'@react-aria/focus': 3.21.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
@ -10495,6 +10516,8 @@ snapshots:
co@4.6.0: {}
code-block-writer@13.0.3: {}
collect-v8-coverage@1.0.2: {}
color-convert@1.9.3:
@ -12875,6 +12898,8 @@ snapshots:
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
path-browserify@1.0.1: {}
path-exists@4.0.0: {}
path-is-absolute@1.0.1: {}
@ -14474,6 +14499,11 @@ snapshots:
esbuild: 0.25.12
jest-util: 30.0.5
ts-morph@27.0.2:
dependencies:
'@ts-morph/common': 0.28.1
code-block-writer: 13.0.3
ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.18))(@types/node@24.10.11)(typescript@5.9.3):
dependencies:
'@cspotcode/source-map-support': 0.8.1

View file

@ -55,6 +55,7 @@ export function WebsiteNav({
teamId={teamId}
onChange={handleChange}
buttonProps={{ style: { outline: 'none' } }}
isCollapsed={isCollapsed}
/>
</Box>
{items.map(({ label: sectionLabel, items: sectionItems }, index) => (

View file

@ -18,13 +18,6 @@ html[style*="padding-right"] {
padding-right: 0 !important;
}
a,
a:active,
a:hover {
color: var(--text-primary);
text-decoration: none;
}
::-webkit-scrollbar {
width: 15px;
background: transparent;

View file

@ -1,4 +1,5 @@
import { ListItem, Row, Select, type SelectProps, Text } from '@umami/react-zen';
import { Icon, ListItem, Row, Select, type SelectProps, Text } from '@umami/react-zen';
import { ChevronRight } from 'lucide-react';
import { useState } from 'react';
import { Empty } from '@/components/common/Empty';
import {
@ -45,6 +46,10 @@ export function WebsiteSelect({
onChange(id);
};
const renderValue = () => {
return isCollapsed ? '' : name;
};
return (
<Select
{...props}
@ -55,11 +60,14 @@ export function WebsiteSelect({
onSearch={handleSearch}
onChange={handleChange}
onOpenChange={handleOpenChange}
renderValue={renderValue}
listProps={{
renderEmptyState: () => <Empty message={t(messages.noResultsFound)} />,
style: { maxHeight: 'calc(42vh - 65px)', width: 280 },
}}
buttonProps={{ style: { minHeight: 40 } }}
buttonProps={{
style: { minHeight: 40, gap: 0, justifyContent: isCollapsed ? 'start' : undefined },
}}
>
{listItems.map(({ id, name }) => (
<ListItem key={id} id={id}>