优化折叠

This commit is contained in:
IndieKKY
2023-06-02 13:49:22 +08:00
parent 098506be33
commit 1a3ac30ec8
3 changed files with 22 additions and 21 deletions

37
pnpm-lock.yaml generated
View File

@@ -57,7 +57,7 @@ dependencies:
version: 18.2.0(react@18.2.0) version: 18.2.0(react@18.2.0)
react-hot-toast: react-hot-toast:
specifier: ^2.4.0 specifier: ^2.4.0
version: 2.4.0(csstype@3.1.1)(react-dom@18.2.0)(react@18.2.0) version: 2.4.0(csstype@3.1.2)(react-dom@18.2.0)(react@18.2.0)
react-icons: react-icons:
specifier: ^4.4.0 specifier: ^4.4.0
version: 4.4.0(react@18.2.0) version: 4.4.0(react@18.2.0)
@@ -1119,7 +1119,7 @@ packages:
postcss: ^8.1.0 postcss: ^8.1.0
dependencies: dependencies:
browserslist: 4.21.4 browserslist: 4.21.4
caniuse-lite: 1.0.30001431 caniuse-lite: 1.0.30001492
fraction.js: 4.2.0 fraction.js: 4.2.0
normalize-range: 0.1.2 normalize-range: 0.1.2
picocolors: 1.0.0 picocolors: 1.0.0
@@ -1160,7 +1160,7 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true hasBin: true
dependencies: dependencies:
caniuse-lite: 1.0.30001400 caniuse-lite: 1.0.30001492
electron-to-chromium: 1.4.251 electron-to-chromium: 1.4.251
node-releases: 2.0.6 node-releases: 2.0.6
update-browserslist-db: 1.0.9(browserslist@4.21.3) update-browserslist-db: 1.0.9(browserslist@4.21.3)
@@ -1170,7 +1170,7 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true hasBin: true
dependencies: dependencies:
caniuse-lite: 1.0.30001431 caniuse-lite: 1.0.30001492
electron-to-chromium: 1.4.251 electron-to-chromium: 1.4.251
node-releases: 2.0.6 node-releases: 2.0.6
update-browserslist-db: 1.0.9(browserslist@4.21.4) update-browserslist-db: 1.0.9(browserslist@4.21.4)
@@ -1211,11 +1211,8 @@ packages:
engines: {node: '>=10'} engines: {node: '>=10'}
dev: false dev: false
/caniuse-lite@1.0.30001400: /caniuse-lite@1.0.30001492:
resolution: {integrity: sha512-Mv659Hn65Z4LgZdJ7ge5JTVbE3rqbJaaXgW5LEI9/tOaXclfIZ8DW7D7FCWWWmWiiPS7AC48S8kf3DApSxQdgA==} resolution: {integrity: sha512-2efF8SAZwgAX1FJr87KWhvuJxnGJKOnctQa8xLOskAXNXq8oiuqgl6u1kk3fFpsp3GgvzlRjiK1sl63hNtFADw==}
/caniuse-lite@1.0.30001431:
resolution: {integrity: sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==}
/ccount@2.0.1: /ccount@2.0.1:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
@@ -1393,6 +1390,10 @@ packages:
/csstype@3.1.1: /csstype@3.1.1:
resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==}
/csstype@3.1.2:
resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
dev: false
/daisyui@2.42.1(autoprefixer@10.4.13)(postcss@8.4.19): /daisyui@2.42.1(autoprefixer@10.4.13)(postcss@8.4.19):
resolution: {integrity: sha512-IVeEvP8gvOzHR47fMrOp2YocQJMRmYskhdt7OsuhKJNn+YzLRGOpVpY7AGXt/56pYeYy7h03THHXRTW5cVU9rQ==} resolution: {integrity: sha512-IVeEvP8gvOzHR47fMrOp2YocQJMRmYskhdt7OsuhKJNn+YzLRGOpVpY7AGXt/56pYeYy7h03THHXRTW5cVU9rQ==}
peerDependencies: peerDependencies:
@@ -2204,7 +2205,7 @@ packages:
resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
engines: {node: '>=12'} engines: {node: '>=12'}
dependencies: dependencies:
graceful-fs: 4.2.10 graceful-fs: 4.2.11
jsonfile: 6.1.0 jsonfile: 6.1.0
universalify: 2.0.0 universalify: 2.0.0
dev: false dev: false
@@ -2311,16 +2312,16 @@ packages:
slash: 3.0.0 slash: 3.0.0
dev: true dev: true
/goober@2.1.12(csstype@3.1.1): /goober@2.1.12(csstype@3.1.2):
resolution: {integrity: sha512-yXHAvO08FU1JgTXX6Zn6sYCUFfB/OJSX8HHjDSgerZHZmFKAb08cykp5LBw5QnmyMcZyPRMqkdyHUSSzge788Q==} resolution: {integrity: sha512-yXHAvO08FU1JgTXX6Zn6sYCUFfB/OJSX8HHjDSgerZHZmFKAb08cykp5LBw5QnmyMcZyPRMqkdyHUSSzge788Q==}
peerDependencies: peerDependencies:
csstype: ^3.0.10 csstype: ^3.0.10
dependencies: dependencies:
csstype: 3.1.1 csstype: 3.1.2
dev: false dev: false
/graceful-fs@4.2.10: /graceful-fs@4.2.11:
resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
requiresBuild: true requiresBuild: true
/grapheme-splitter@1.0.4: /grapheme-splitter@1.0.4:
@@ -2644,7 +2645,7 @@ packages:
dependencies: dependencies:
universalify: 2.0.0 universalify: 2.0.0
optionalDependencies: optionalDependencies:
graceful-fs: 4.2.10 graceful-fs: 4.2.11
dev: false dev: false
/jsx-ast-utils@3.3.3: /jsx-ast-utils@3.3.3:
@@ -2670,7 +2671,7 @@ packages:
tslib: 2.4.0 tslib: 2.4.0
optionalDependencies: optionalDependencies:
errno: 0.1.8 errno: 0.1.8
graceful-fs: 4.2.10 graceful-fs: 4.2.11
image-size: 0.5.5 image-size: 0.5.5
make-dir: 2.1.0 make-dir: 2.1.0
mime: 1.6.0 mime: 1.6.0
@@ -3514,14 +3515,14 @@ packages:
resolution: {integrity: sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==} resolution: {integrity: sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==}
dev: false dev: false
/react-hot-toast@2.4.0(csstype@3.1.1)(react-dom@18.2.0)(react@18.2.0): /react-hot-toast@2.4.0(csstype@3.1.2)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-qnnVbXropKuwUpriVVosgo8QrB+IaPJCpL8oBI6Ov84uvHZ5QQcTp2qg6ku2wNfgJl6rlQXJIQU5q+5lmPOutA==} resolution: {integrity: sha512-qnnVbXropKuwUpriVVosgo8QrB+IaPJCpL8oBI6Ov84uvHZ5QQcTp2qg6ku2wNfgJl6rlQXJIQU5q+5lmPOutA==}
engines: {node: '>=10'} engines: {node: '>=10'}
peerDependencies: peerDependencies:
react: '>=16' react: '>=16'
react-dom: '>=16' react-dom: '>=16'
dependencies: dependencies:
goober: 2.1.12(csstype@3.1.1) goober: 2.1.12(csstype@3.1.2)
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0(react@18.2.0) react-dom: 18.2.0(react@18.2.0)
transitivePeerDependencies: transitivePeerDependencies:

View File

@@ -133,7 +133,7 @@ const Body = () => {
return <div className='relative'> return <div className='relative'>
<div className='absolute top-1 left-6 flex-center gap-1'> <div className='absolute top-1 left-6 flex-center gap-1'>
<AiOutlineAim className='cursor-pointer' onClick={posCallback} title='滚动到视频位置'/> <AiOutlineAim className='cursor-pointer' onClick={posCallback} title='滚动到视频位置'/>
{segments != null && segments.length > 1 && {segments != null && segments.length > 0 &&
<MdExpand className={classNames('cursor-pointer', foldAll ? 'text-accent' : '')} onClick={onFoldAll} <MdExpand className={classNames('cursor-pointer', foldAll ? 'text-accent' : '')} onClick={onFoldAll}
title='展开/折叠全部'/>} title='展开/折叠全部'/>}
</div> </div>

View File

@@ -191,7 +191,7 @@ const SegmentCard = (props: {
return <div return <div
className={classNames('border border-base-300 bg-base-200/25 rounded flex flex-col m-1.5 p-1.5 gap-1 shadow', showCurrent && 'shadow-primary')}> className={classNames('border border-base-300 bg-base-200/25 rounded flex flex-col m-1.5 p-1.5 gap-1 shadow', showCurrent && 'shadow-primary')}>
<div className='relative flex justify-center min-h-[20px]'> <div className='relative flex justify-center min-h-[20px]'>
{segments != null && segments.length > 1 && {segments != null && segments.length > 0 &&
<div className='absolute left-0 top-0 bottom-0 text-xs select-none flex-center desc'> <div className='absolute left-0 top-0 bottom-0 text-xs select-none flex-center desc'>
{segment.fold {segment.fold
? <BsPlusSquare className='cursor-pointer' onClick={onFold}/> : ? <BsPlusSquare className='cursor-pointer' onClick={onFold}/> :
@@ -224,7 +224,7 @@ const SegmentCard = (props: {
needScroll={needScroll && curIdx === segment.startIdx + idx} needScroll={needScroll && curIdx === segment.startIdx + idx}
last={idx === segment.items.length - 1} last={idx === segment.items.length - 1}
/>)} />)}
{segments != null && segments.length > 1 && <div className='flex justify-center'><a className='link text-xs' {segments != null && segments.length > 0 && <div className='flex justify-center'><a className='link text-xs'
onClick={onFold}>{segment.items.length}</a> onClick={onFold}>{segment.items.length}</a>
</div>} </div>}
</div> </div>