broken list

This commit is contained in:
Jamie 2021-10-28 07:43:37 -07:00
parent b639160107
commit b51734f180
14 changed files with 207 additions and 100 deletions

View file

@ -11,6 +11,8 @@
"@types/react": "^17.0.18",
"@types/react-dom": "^17.0.9",
"@types/react-router-dom": "^5.3.1",
"@types/react-virtualized-auto-sizer": "^1.0.1",
"@types/react-window": "^1.8.5",
"@types/tailwindcss": "^2.2.1",
"concurrently": "^6.2.1",
"prettier": "^2.3.2",
@ -49,6 +51,8 @@
"react-router-dom": "^5.2.0",
"react-spline": "^1.2.1",
"react-virtualized": "^9.22.3",
"react-virtualized-auto-sizer": "^1.0.6",
"react-window": "^1.8.6",
"rooks": "^5.7.1",
"tailwindcss": "^2.2.16",
"vite": "^2.4.4",

View file

@ -39,3 +39,8 @@ pub async fn get_dir_with_contents(path: &str) -> Result<Directory, String> {
contents: files,
})
}
pub async fn get_directory(path: &str) {
// 1. search db for path
// 2. get directory shallow
}

View file

@ -1,21 +1,22 @@
import { DocumentIcon, DotsVerticalIcon, FilmIcon, FolderIcon } from '@heroicons/react/solid';
import clsx from 'clsx';
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
import { IFile } from '../../types';
import byteSize from 'pretty-bytes';
import { useKey, useOnWindowResize, useWindowSize } from 'rooks';
import { DotsVerticalIcon } from '@heroicons/react/solid';
import { invoke } from '@tauri-apps/api';
import { convertFileSrc } from '@tauri-apps/api/tauri';
import clsx from 'clsx';
import byteSize from 'pretty-bytes';
import React, { forwardRef, useEffect, useMemo, useRef } from 'react';
import AutoSizer from 'react-virtualized-auto-sizer';
import { FixedSizeList as List } from 'react-window';
import { useKey, useWindowSize } from 'rooks';
import { DirectoryResponse } from '../../screens/Explorer';
// import { List, ListRowRenderer } from 'react-virtualized';
import { useAppState } from '../../store/app';
import {
useCurrentDir,
useExplorerStore,
useFile,
useSelectedFile,
useSelectedFileIndex
} from '../../store/explorer';
import { DirectoryResponse } from '../../screens/Explorer';
import { List, ListRowRenderer } from 'react-virtualized';
import { useAppState } from '../../store/app';
import { convertFileSrc } from '@tauri-apps/api/tauri';
import { IFile } from '../../types';
interface IColumn {
column: string;
@ -23,6 +24,8 @@ interface IColumn {
width: number;
}
const PADDING_SIZE = 130;
// Function ensure no types are loss, but guarantees that they are Column[]
function ensureIsColumns<T extends IColumn[]>(data: T) {
return data;
@ -53,7 +56,7 @@ export const FileList: React.FC<{}> = (props) => {
const seletedRowIndex = useSelectedFileIndex(currentDir?.id as number);
useEffect(() => {
if (seletedRowIndex != null) VList.current?.scrollToRow(seletedRowIndex);
if (seletedRowIndex != null) VList.current?.scrollToItem(seletedRowIndex);
}, [seletedRowIndex]);
useKey('ArrowUp', (e) => {
@ -68,42 +71,18 @@ export const FileList: React.FC<{}> = (props) => {
explorer.selectFile(explorer.currentDir as number, explorer.selectedFile.id, 'below');
});
// function isRowOutOfView(rowHeight: number, rowIndex: number) {
// const scrollTop = scrollContainer.current?.scrollTop || 0;
// }
const rowRenderer: ListRowRenderer = ({
index, // Index of row
isScrolling, // The List is currently being scrolled
isVisible, // This row is visible within the List (eg it is not an overscanned row)
key, // Unique key within array of rendered rows
parent, // Reference to the parent List (instance)
style // Style object to be applied to row (to position it);
// This must be passed through to the rendered row element.
}) => {
const row = currentDir?.children?.[index] as IFile;
// If row content is complex, consider rendering a light-weight placeholder while scrolling.
const content = (
<RenderRow key={key} row={row} rowIndex={index} dirId={currentDir?.id as number} />
);
return (
<div key={key} style={style}>
{content}
</div>
);
};
const width = (tableContainer.current?.getBoundingClientRect().width || 0) - 30;
const height = (tableContainer.current?.getBoundingClientRect().height || 0) - 140;
return useMemo(
() => (
<div
ref={tableContainer}
className="table-container w-full h-full bg-white dark:bg-gray-900 p-3 cursor-default"
>
<h1 className="p-2 ml-3 font-bold text-xl">{currentDir?.name}</h1>
const listInnerElement = forwardRef<HTMLDivElement, { style: any }>(({ style, ...rest }, ref) => (
<div
ref={ref}
style={{
...style,
height: `${parseFloat(style.height) + PADDING_SIZE * 2}px`
}}
{...rest}
className="jeff"
>
<div>
<h1 className="p-2 mt-12 ml-3 font-bold text-xl">{currentDir?.name}</h1>
<div className="table-head">
<div className="table-head-row flex flex-row p-2">
{columns.map((col) => (
@ -118,15 +97,44 @@ export const FileList: React.FC<{}> = (props) => {
))}
</div>
</div>
<List
ref={VList}
width={width}
height={height}
rowHeight={40}
rowCount={currentDir?.children_count || 0}
rowRenderer={rowRenderer}
className="table-body pb-10 outline-none"
/>
</div>
{rest.children}
</div>
));
const Row = ({ index, key, style }: any) => {
const row = currentDir?.children?.[index] as IFile;
return (
<div key={key} style={{ ...style, top: `${parseFloat(style.top) + PADDING_SIZE}px` }}>
<RenderRow key={key} row={row} rowIndex={index} dirId={currentDir?.id as number} />
</div>
);
};
return useMemo(
() => (
<div
ref={tableContainer}
style={{ marginTop: -44 }}
className="table-container w-full h-full bg-white dark:bg-gray-900 p-3 cursor-default"
>
<AutoSizer>
{({ width, height }) => (
<List
ref={VList}
innerElementType={listInnerElement}
width={width}
height={height}
overscanCount={5}
itemSize={40}
itemCount={currentDir?.children_count || 0}
className="table-body pb-10 outline-none"
>
{Row}
</List>
)}
</AutoSizer>
</div>
),
[size.innerWidth, currentDir?.id, tableContainer.current]

View file

@ -1,11 +1,16 @@
import {
BookOpenIcon,
CogIcon,
CollectionIcon,
CubeTransparentIcon,
DatabaseIcon,
FolderIcon,
LibraryIcon,
PhotographIcon,
PlusIcon,
ServerIcon
} from '@heroicons/react/solid';
import clsx from 'clsx';
import {
Book,
Camera,
@ -19,11 +24,13 @@ import {
HardDrives,
MonitorPlay,
Package,
Planet
Planet,
Plus
} from 'phosphor-react';
import React, { useEffect } from 'react';
import { NavLink, NavLinkProps } from 'react-router-dom';
import { useLocations } from '../../store/locations';
import { Button } from '../primative';
import { Dropdown } from '../primative/Dropdown';
import { DefaultProps } from '../primative/types';
@ -39,15 +46,20 @@ interface SidebarProps extends DefaultProps {}
const SidebarLink = (props: NavLinkProps) => (
<NavLink
className="max-w mb-[2px] text-gray-550 dark:text-gray-150 rounded-md px-2 py-1 flex flex-row items-center hover:bg-gray-100 dark:hover:bg-gray-600 text-sm"
activeClassName="!bg-primary !text-white hover:bg-primary dark:hover:bg-primary"
{...props}
className={clsx(
'max-w mb-[2px] text-gray-550 dark:text-gray-150 rounded-md px-2 py-1 flex flex-row flex-grow items-center hover:bg-gray-100 dark:hover:bg-gray-600 text-sm',
props.className
)}
activeClassName="!bg-primary !text-white hover:bg-primary dark:hover:bg-primary"
>
{props.children}
</NavLink>
);
const Icon = ({ component: Icon }: any) => <Icon weight="bold" className="w-4 h-4 mr-2 " />;
const Icon = ({ component: Icon, ...props }: any) => (
<Icon weight="bold" {...props} className={clsx('w-4 h-4 mr-2', props.className)} />
);
const Heading: React.FC<{}> = ({ children }) => (
<div className="text-xs font-semibold text-gray-300 ml-1 mb-1 mt-5">{children}</div>
@ -59,7 +71,7 @@ export const Sidebar: React.FC<SidebarProps> = (props) => {
console.log({ locations });
return (
<div className="w-46 flex flex-col flex-wrap flex-shrink-0 min-h-full bg-gray-50 dark:bg-gray-650 border-gray-100 border-r dark:border-gray-600 px-3 space-y-0.5">
<div className="w-46 flex flex-col flex-wrap flex-shrink-0 min-h-full bg-gray-50 dark:bg-gray-650 border-gray-100 border-r dark:border-gray-600 px-3 space-y-0.5">
<Dropdown
buttonProps={{
justifyLeft: true,
@ -69,7 +81,13 @@ export const Sidebar: React.FC<SidebarProps> = (props) => {
}}
// buttonIcon={<Book weight="bold" className="w-4 h-4 mt-0.5 mr-1" />}
buttonText="Jamie's Library"
items={[[{ name: `Jamie's Library` }, { name: 'Subto' }], [{ name: 'Add Library' }]]}
items={[
[{ name: `Jamie's Library`, selected: true }, { name: 'Subto' }],
[
{ name: 'Library Settings', icon: CogIcon },
{ name: 'Add Library', icon: PlusIcon }
]
]}
/>
<div>
@ -90,12 +108,22 @@ export const Sidebar: React.FC<SidebarProps> = (props) => {
<Heading>Locations</Heading>
{locations.map((location, index) => {
return (
<SidebarLink key={index} to={`/explorer/${location.name}`}>
<Icon component={ServerIcon} />
{location.name}
<div className="flex-grow" />
{location.is_removable && <Icon component={EjectSimple} />}
</SidebarLink>
<div className="flex flex-row items-center">
<SidebarLink className="relative group" key={index} to={`/explorer/${location.name}`}>
<Icon component={ServerIcon} />
{location.name}
<div className="flex-grow" />
{location.is_removable && (
<Button
noBorder
size="sm"
className="w-7 h-7 top-0 right-0 absolute group-hover:bg-gray-600 hover:!bg-gray-550 transition-none items-center !rounded-l-none"
>
<Icon className="w-3 h-3 mr-0" component={EjectSimple} />
</Button>
)}
</SidebarLink>
</div>
);
})}
</div>

View file

@ -18,7 +18,6 @@ import {
FolderPlus,
HouseSimple,
Key,
List,
SquaresFour,
Tag,
TerminalWindow
@ -66,7 +65,7 @@ export const TopBar: React.FC<TopBarProps> = (props) => {
<>
<div
data-tauri-drag-region
className="flex flex-shrink-0 h-[2.95rem] -mt-0.5 max-w items-center border-b bg-gray-50 dark:bg-gray-650 border-gray-100 dark:border-gray-600 shadow-sm"
className="flex z-50 blur-rr !bg-opacity-70 flex-shrink-0 h-[2.95rem] -mt-0.5 max-w items-center border-b bg-gray-50 dark:bg-gray-650 border-gray-100 dark:border-gray-600 shadow-sm"
>
<div className="mr-32 ml-1 ">
<TrafficLights

View file

@ -27,7 +27,7 @@ const Light: React.FC<LightProps> = (props) => {
return (
<div
onClick={props.action}
className={clsx('w-[12px] h-[12px] rounded-full cursor-pointer', {
className={clsx('w-[12px] h-[12px] rounded-full', {
'bg-red-400': props.mode == 'close',
'bg-green-400': props.mode == 'fullscreen',
'bg-yellow-400': props.mode == 'minimize'

View file

@ -14,8 +14,8 @@ const variants = {
shadow-sm
hover:bg-gray-100
active:bg-gray-50
dark:bg-gray-800
dark:hover:bg-gray-700
dark:bg-gray-650
dark:hover:bg-gray-650
dark:active:bg-gray-700
dark:active:opacity-80
@ -84,7 +84,7 @@ export const Button: React.FC<ButtonProps> = ({ loading, ...props }) => {
<button
{...props}
className={clsx(
'flex border rounded-md transition-colors duration-100',
'flex border rounded-md transition-colors duration-100 cursor-default',
{ 'opacity-5': loading, '!p-1': props.noPadding },
{ 'justify-center': !props.justifyLeft },
sizes[props.size || 'default'],

View file

@ -9,7 +9,7 @@ export const Checkbox: React.FC<CheckboxProps> = (props) => {
return (
<label
className={clsx(
'flex items-center text-sm cursor-pointer font-medium text-gray-700 dark:text-gray-100',
'flex items-center text-sm font-medium text-gray-700 dark:text-gray-100',
props.containerClasname
)}
>
@ -26,7 +26,6 @@ export const Checkbox: React.FC<CheckboxProps> = (props) => {
dark:border-gray-700
dark:hover:bg-gray-700
dark:hover:border-gray-600
cursor-pointer
transition
rounded
mr-2

View file

@ -45,7 +45,7 @@ export const Dropdown: React.FC<DropdownProps> = (props) => {
leaveFrom="transform opacity-100 scale-100"
leaveTo="transform opacity-0 scale-95"
>
<Menu.Items className="absolute left-0 w-40 mt-1 origin-top-left bg-white dark:bg-gray-900 divide-y divide-gray-100 dark:divide-gray-700 rounded-md shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none">
<Menu.Items className="absolute left-0 w-44 mt-1 origin-top-left bg-white dark:bg-gray-900 divide-y divide-gray-100 dark:divide-gray-700 border dark:border-gray-700 rounded-md shadow-2xl ring-1 ring-black ring-opacity-5 focus:outline-none z-50">
{props.items.map((item, index) => (
<div key={index} className="px-1 py-1">
{item.map((button, index) => (
@ -53,9 +53,10 @@ export const Dropdown: React.FC<DropdownProps> = (props) => {
{({ active }) => (
<button
className={clsx(
'text-sm group flex rounded-md items-center w-full px-2 py-1',
'text-sm group flex rounded-md items-center w-full px-2 py-1 mb-[2px] dark:hover:bg-gray-750',
{
'bg-primary text-white': active,
'bg-gray-300 dark:bg-gray-600 dark:hover:!bg-gray-750':
active || button.selected,
'text-gray-900 dark:text-gray-200': !active
}
)}

View file

@ -9,15 +9,15 @@ const variants = {
focus:hover:bg-white
focus:bg-white
dark:bg-gray-800
dark:hover:bg-gray-700
dark:hover:bg-gray-750
dark:focus:bg-gray-800
dark:focus:hover:bg-gray-800
border-gray-100
hover:border-gray-200
focus:border-white
dark:border-gray-700
dark:hover:border-gray-700
dark:border-gray-600
dark:hover:border-gray-600
dark:focus:border-gray-900
focus:ring-gray-100

View file

@ -11,7 +11,7 @@ export const Toggle = (props: { initialState: boolean }) => {
checked={enabled}
onChange={setEnabled}
className={clsx(
'relative inline-flex items-center h-6 rounded-full w-11 bg-gray-200 dark:bg-gray-700',
'relative inline-flex items-center h-6 rounded-full w-11 bg-gray-200 dark:bg-gray-750',
{
'bg-primary-500 dark:bg-primary-500': enabled
}

View file

@ -1,6 +1,15 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
a,
button {
@apply cursor-default;
}
.blur-rr {
-webkit-backdrop-filter: blur(10px);
}
/*
.table-container {
@apply w-full bg-gray-900;

View file

@ -1,5 +1,5 @@
Arguments:
/usr/local/bin/node /usr/local/Cellar/yarn/1.22.5/libexec/bin/yarn.js add react-error-boundry
/usr/local/bin/node /usr/local/Cellar/yarn/1.22.5/libexec/bin/yarn.js add react-virtualized-auto-size
PATH:
/Users/jamie/Library/Android/sdk/tools:/Users/jamie/Library/Android/sdk/platform-tools:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/Library/Apple/usr/bin:/Users/jamie/.cargo/bin
@ -14,7 +14,7 @@ Platform:
darwin x64
Trace:
Error: https://registry.yarnpkg.com/react-error-boundry: Not found
Error: https://registry.yarnpkg.com/react-virtualized-auto-size: Not found
at Request.params.callback [as _callback] (/usr/local/Cellar/yarn/1.22.5/libexec/lib/cli.js:66988:18)
at Request.self.callback (/usr/local/Cellar/yarn/1.22.5/libexec/lib/cli.js:140749:22)
at Request.emit (events.js:315:20)
@ -73,10 +73,12 @@ npm manifest:
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-dropzone": "^11.3.4",
"react-error-boundary": "^3.1.3",
"react-hotkeys-hook": "^3.4.4",
"react-router-dom": "^5.2.0",
"react-spline": "^1.2.1",
"react-virtualized": "^9.22.3",
"react-window": "^1.8.6",
"rooks": "^5.7.1",
"tailwindcss": "^2.2.16",
"vite": "^2.4.4",
@ -298,6 +300,13 @@ Lockfile:
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.7":
version "7.15.4"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a"
integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==
dependencies:
regenerator-runtime "^0.13.4"
"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1":
version "7.15.3"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz#2e1c2880ca118e5b2f9988322bd8a7656a32502b"
@ -305,13 +314,6 @@ Lockfile:
dependencies:
regenerator-runtime "^0.13.4"
"@babel/runtime@^7.7.2", "@babel/runtime@^7.8.7":
version "7.15.4"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a"
integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==
dependencies:
regenerator-runtime "^0.13.4"
"@babel/template@^7.14.5":
version "7.14.5"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4"
@ -2761,6 +2763,11 @@ Lockfile:
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
"memoize-one@>=3.1.1 <6":
version "5.2.1"
resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e"
integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==
meow@^3.3.0:
version "3.7.0"
resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
@ -3491,6 +3498,13 @@ Lockfile:
file-selector "^0.2.2"
prop-types "^15.7.2"
react-error-boundary@^3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/react-error-boundary/-/react-error-boundary-3.1.3.tgz#276bfa05de8ac17b863587c9e0647522c25e2a0b"
integrity sha512-A+F9HHy9fvt9t8SNDlonq01prnU8AmkjvGKV4kk8seB9kU3xMEO8J/PQlLVmoOIDODl5U2kufSBs4vrWIqhsAA==
dependencies:
"@babel/runtime" "^7.12.5"
react-hotkeys-hook@^3.4.4:
version "3.4.4"
resolved "https://registry.yarnpkg.com/react-hotkeys-hook/-/react-hotkeys-hook-3.4.4.tgz#52ba5d8ef5e47cc2e776c70a9036d518e0993d51"
@ -3561,6 +3575,14 @@ Lockfile:
prop-types "^15.7.2"
react-lifecycles-compat "^3.0.4"
react-window@^1.8.6:
version "1.8.6"
resolved "https://registry.yarnpkg.com/react-window/-/react-window-1.8.6.tgz#d011950ac643a994118632665aad0c6382e2a112"
integrity sha512-8VwEEYyjz6DCnGBsd+MgkD0KJ2/OXFULyDtorIiTz+QzwoP94tBoA7CnbtyXMm+cCeAUER5KJcPtWl9cpKbOBg==
dependencies:
"@babel/runtime" "^7.0.0"
memoize-one ">=3.1.1 <6"
react@^17.0.2:
version "17.0.2"
resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037"

View file

@ -206,6 +206,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.7":
version "7.15.4"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a"
integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==
dependencies:
regenerator-runtime "^0.13.4"
"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1":
version "7.15.3"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz#2e1c2880ca118e5b2f9988322bd8a7656a32502b"
@ -213,13 +220,6 @@
dependencies:
regenerator-runtime "^0.13.4"
"@babel/runtime@^7.12.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.7":
version "7.15.4"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a"
integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==
dependencies:
regenerator-runtime "^0.13.4"
"@babel/template@^7.14.5":
version "7.14.5"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4"
@ -509,6 +509,13 @@
dependencies:
"@types/react" "*"
"@types/react-virtualized-auto-sizer@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@types/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.1.tgz#b3187dae1dfc4c15880c9cfc5b45f2719ea6ebd4"
integrity sha512-GH8sAnBEM5GV9LTeiz56r4ZhMOUSrP43tAQNSRVxNexDjcNKLCEtnxusAItg1owFUFE6k0NslV26gqVClVvong==
dependencies:
"@types/react" "*"
"@types/react-virtualized@^9.21.14":
version "9.21.14"
resolved "https://registry.yarnpkg.com/@types/react-virtualized/-/react-virtualized-9.21.14.tgz#8d465aa54386a7bebc7b61f71afc588bb800b868"
@ -517,6 +524,13 @@
"@types/prop-types" "*"
"@types/react" "*"
"@types/react-window@^1.8.5":
version "1.8.5"
resolved "https://registry.yarnpkg.com/@types/react-window/-/react-window-1.8.5.tgz#285fcc5cea703eef78d90f499e1457e9b5c02fc1"
integrity sha512-V9q3CvhC9Jk9bWBOysPGaWy/Z0lxYcTXLtLipkt2cnRj1JOSFNF7wqGpkScSXMgBwC+fnVRg/7shwgddBG5ICw==
dependencies:
"@types/react" "*"
"@types/react@*", "@types/react@^17.0.18":
version "17.0.18"
resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.18.tgz#4109cbbd901be9582e5e39e3d77acd7b66bb7fbe"
@ -2669,6 +2683,11 @@ map-obj@^1.0.0, map-obj@^1.0.1:
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
"memoize-one@>=3.1.1 <6":
version "5.2.1"
resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e"
integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==
meow@^3.3.0:
version "3.7.0"
resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
@ -3464,6 +3483,11 @@ react-spline@^1.2.1:
dependencies:
three "0.123.0"
react-virtualized-auto-sizer@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.6.tgz#66c5b1c9278064c5ef1699ed40a29c11518f97ca"
integrity sha512-7tQ0BmZqfVF6YYEWcIGuoR3OdYe8I/ZFbNclFlGOC3pMqunkYF/oL30NCjSGl9sMEb17AnzixDz98Kqc3N76HQ==
react-virtualized@^9.22.3:
version "9.22.3"
resolved "https://registry.yarnpkg.com/react-virtualized/-/react-virtualized-9.22.3.tgz#f430f16beb0a42db420dbd4d340403c0de334421"
@ -3476,6 +3500,14 @@ react-virtualized@^9.22.3:
prop-types "^15.7.2"
react-lifecycles-compat "^3.0.4"
react-window@^1.8.6:
version "1.8.6"
resolved "https://registry.yarnpkg.com/react-window/-/react-window-1.8.6.tgz#d011950ac643a994118632665aad0c6382e2a112"
integrity sha512-8VwEEYyjz6DCnGBsd+MgkD0KJ2/OXFULyDtorIiTz+QzwoP94tBoA7CnbtyXMm+cCeAUER5KJcPtWl9cpKbOBg==
dependencies:
"@babel/runtime" "^7.0.0"
memoize-one ">=3.1.1 <6"
react@^17.0.2:
version "17.0.2"
resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037"