diff --git a/app/(pages)/(content)/anime/[slug]/components/details/components/studio.tsx b/app/(pages)/(content)/anime/[slug]/components/details/components/studio.tsx index 3e726a7c..0447f4d4 100644 --- a/app/(pages)/(content)/anime/[slug]/components/details/components/studio.tsx +++ b/app/(pages)/(content)/anime/[slug]/components/details/components/studio.tsx @@ -1,6 +1,7 @@ import { FC } from 'react'; import Image from 'next/image'; +import Link from 'next/link'; import P from '@/components/typography/p'; import { Label } from '@/components/ui/label'; @@ -11,7 +12,7 @@ import { } from '@/components/ui/tooltip'; interface Props { - companies: API.Company[]; + companies: API.CompanyWithType[]; } const Studio: FC = ({ companies }) => { @@ -34,20 +35,28 @@ const Studio: FC = ({ companies }) => { {studio.company.image ? ( - studio + + studio +

{studio.company.name}

) : ( - + )} diff --git a/components/filters/anime-filters.tsx b/components/filters/anime-filters.tsx index 8007ef41..6be63de4 100644 --- a/components/filters/anime-filters.tsx +++ b/components/filters/anime-filters.tsx @@ -2,7 +2,7 @@ import clsx from 'clsx'; import * as React from 'react'; -import { FC, Fragment, useEffect, useState } from 'react'; +import { FC, useEffect, useState } from 'react'; import AntDesignClearOutlined from '~icons/ant-design/clear-outlined'; import MaterialSymbolsSortRounded from '~icons/material-symbols/sort-rounded'; @@ -17,16 +17,19 @@ import { ScrollArea } from '@/components/ui/scroll-area'; import { Select, SelectContent, + SelectEmpty, SelectGroup, SelectItem, SelectList, SelectSearch, - SelectSeparator, SelectTrigger, SelectValue, + groupOptions, + renderSelectOptions, } from '@/components/ui/select'; import { Slider } from '@/components/ui/slider'; import getAnimeGenres from '@/services/api/anime/getAnimeGenres'; +import useCompanies from '@/services/hooks/companies/useCompanies'; import { AGE_RATING, GENRE_TYPES, @@ -88,26 +91,32 @@ const AnimeFilters: FC = ({ className, type }) => { const ageRatings = searchParams.getAll('ratings'); const years = searchParams.getAll('years'); const genres = searchParams.getAll('genres'); + const studios = searchParams.getAll('studios'); const lang = searchParams.get('only_translated'); const order = searchParams.get('order'); const sort = searchParams.get('sort') || 'score'; + const sortOptions = type === 'anime' ? SORT_ANIME : SORT_WATCHLIST; + const { data: genresList } = useQuery({ queryKey: ['animeGenres'], queryFn: () => getAnimeGenres(), select: (data) => - data.list.reduce>( - (acc, genre) => { - if (!acc[genre.type]) { - acc[genre.type] = []; - } - acc[genre.type].push(genre); - return acc; - }, - {} as Record, + groupOptions( + data.list.map((genre) => ({ + value: genre.slug, + label: genre.name_ua, + group: GENRE_TYPES[genre.type].title_ua, + })), ), }); + const [studioSearch, setStudioSearch] = useState(); + const { data: studioList, isFetching: isStudioListFetching } = useCompanies({ + type: 'studio', + query: studioSearch, + }); + const [selectingYears, setSelectingYears] = useState( years.length > 0 ? years : YEARS.map((y) => String(y)), ); @@ -137,6 +146,15 @@ const AnimeFilters: FC = ({ className, type }) => { router.replace(`${pathname}?${query}`); }; + const handleStudioSearch = (keyword: string) => { + if(keyword.length < 3) { + setStudioSearch(undefined); + return; + } + + setStudioSearch(keyword); + } + useEffect(() => { if (JSON.stringify(selectingYears) !== JSON.stringify(years)) { setSelectingYears( @@ -166,15 +184,12 @@ const AnimeFilters: FC = ({ className, type }) => { } > - + - {(type === 'anime' - ? SORT_ANIME - : SORT_WATCHLIST - ).map((item) => ( + {sortOptions.map((item) => ( = ({ className, type }) => { - {genresList && - ( - Object.keys( - genresList, - ) as API.GenreType[] - ).map((type, index) => ( - - {index !== 0 && } - - {genresList[type].map( - (genre) => ( - - {genre.name_ua || - genre.name_en} - - ), - )} - - - ))} + {genresList && renderSelectOptions(genresList)} + Жанрів не знайдено @@ -301,6 +291,41 @@ const AnimeFilters: FC = ({ className, type }) => { property="ratings" onParamChange={handleChangeParam} /> +
+ + +
@@ -334,7 +359,6 @@ const AnimeFilters: FC = ({ className, type }) => { > Очистити - ; ; ); }; diff --git a/services/api/companies/getCompanies.ts b/services/api/companies/getCompanies.ts new file mode 100644 index 00000000..5726fa7c --- /dev/null +++ b/services/api/companies/getCompanies.ts @@ -0,0 +1,30 @@ +import { + BaseFetchRequestProps, + fetchRequest, +} from '@/services/api/fetchRequest'; + +export interface Response extends API.WithPagination {} + +export interface Params { + query?: string; + type: API.CompanyType; +} + +export default async function req({ + page = 1, + size = 15, + ...props +}: BaseFetchRequestProps): Promise { + return fetchRequest({ + ...props, + path: `/companies`, + method: 'post', + page, + size, + config: { + next: { + revalidate: 60, + }, + }, + }); +} diff --git a/services/hooks/anime/useAnimeCatalog.ts b/services/hooks/anime/useAnimeCatalog.ts index 85366245..fb33e068 100644 --- a/services/hooks/anime/useAnimeCatalog.ts +++ b/services/hooks/anime/useAnimeCatalog.ts @@ -25,6 +25,7 @@ const useAnimeCatalog = ({ page, iPage, ...props }: Props) => { const ageRatings = props.rating || searchParams.getAll('ratings'); const years = props.years || searchParams.getAll('years'); const genres = props.genres || searchParams.getAll('genres'); + const studios = props.studios || searchParams.getAll('studios'); const lang = props.only_translated || searchParams.get('only_translated'); const sort = searchParams.get('sort') || 'score'; const order = searchParams.get('order') || 'desc'; @@ -42,6 +43,7 @@ const useAnimeCatalog = ({ page, iPage, ...props }: Props) => { years, lang, genres, + studios, sort, order, }, @@ -65,6 +67,7 @@ const useAnimeCatalog = ({ page, iPage, ...props }: Props) => { ...(sort === 'score' ? ['scored_by:desc'] : []), ], genres, + studios, only_translated: Boolean(lang), }, page: Number(pageParam), diff --git a/services/hooks/companies/useCompanies.ts b/services/hooks/companies/useCompanies.ts new file mode 100644 index 00000000..0629ba94 --- /dev/null +++ b/services/hooks/companies/useCompanies.ts @@ -0,0 +1,15 @@ +import { useQuery } from '@tanstack/react-query'; + +import getCompanies, { Params } from '@/services/api/companies/getCompanies'; + +const useCompanies = (params: Params) => { + return useQuery({ + queryKey: ['companies', { ...params }], + queryFn: () => + getCompanies({ + params, + }), + }); +}; + +export default useCompanies; diff --git a/types/api.d.ts b/types/api.d.ts index 77e021c4..398fe1ee 100644 --- a/types/api.d.ts +++ b/types/api.d.ts @@ -145,42 +145,42 @@ declare global { type Anime = { data_type: 'anime'; - media_type: MediaType; + media_type: API.MediaType; title_ua: string; title_en: string; title_ja: string; episodes_released: number; episodes_total: number; poster: string; - status: Status; + status: API.Status; scored_by: number; score: number; slug: string; year: number; - watch: Watch[]; + watch: API.Watch[]; title?: string; }; type AnimeInfo = { - companies: Company[]; - genres: Genre[]; + companies: API.CompanyWithType[]; + genres: API.Genre[]; start_date: number; end_date: number; synopsis_en: string; synopsis_ua: string; duration: number; - source: Source; - rating: AgeRating; + source: API.Source; + rating: API.AgeRating; has_franchise: boolean; nsfw: boolean; synonyms: string[]; - external: External[]; - videos: Video[]; - ost: OST[]; - stats: Stats; + external: API.External[]; + videos: API.Video[]; + ost: API.OST[]; + stats: API.Stats; comments_count: number; updated: number; - schedule: Schedule[]; + schedule: API.Schedule[]; } & Anime; type GenreType = 'theme' | 'explicit' | 'demographic' | 'genre'; @@ -189,7 +189,7 @@ declare global { name_en: string; name_ua: string; slug: string; - type: GenreType; + type: API.GenreType; }; type Character = { @@ -214,18 +214,22 @@ declare global { anime_count: number; }; + type CompanyType = 'producer' | 'studio'; + type Company = { - company: { - image: string; - slug: string; - name: string; - }; - type: 'producer' | 'studio'; + image: string; + slug: string; + name: string; + }; + + type CompanyWithType = { + company: API.Company; + type: API.CompanyType; }; type Edit, TContent = MainContent> = { content_type: ContentType; - status: EditStatus; + status: API.EditStatus; description: string | null; created: number; updated: number; @@ -242,7 +246,7 @@ declare global { author: API.User; created: number; text: string; - replies: Comment[]; + replies: API.Comment[]; total_replies: number; depth: number; vote_score: number; @@ -297,7 +301,7 @@ declare global { > = { reference: string; content?: API.Anime; - history_type: HistoryType; + history_type: API.HistoryType; created: number; updated: number; data: TData; @@ -326,7 +330,7 @@ declare global { type NotificationCommentData = { slug: string; comment_text: string; - content_type: ContentType; + content_type: API.ContentType; comment_depth: number; comment_reference: string; base_comment_reference: string; @@ -344,7 +348,7 @@ declare global { }; type NotificationCommentVoteData = { - content_type: ContentType; + content_type: API.ContentType; comment_reference: string; comment_depth: number; comment_text: string; diff --git a/yarn.lock b/yarn.lock index f38fddb0..92d1519f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3774,15 +3774,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/primitive@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/primitive@npm:1.0.0" - dependencies: - "@babel/runtime": "npm:^7.13.10" - checksum: 10c0/4b0a4bdbf312df2317c3a3c728b0d2249242220a93eedaffecd4207bc0b8d3f28498c4b15f16c8f60b8292302d6d28ef73d751f63e77ef9bf6a318f52c6dc19b - languageName: node - linkType: hard - "@radix-ui/primitive@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/primitive@npm:1.0.1" @@ -3957,17 +3948,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-compose-refs@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-compose-refs@npm:1.0.0" - dependencies: - "@babel/runtime": "npm:^7.13.10" - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: 10c0/449148920c1df82ffcdd78a68d3485036d198b41b9fcfc407b008df5dfefc8f1a60391f7b53e2bc69e0fdbbba846b0b79fede5f7ed35bca82af4eff6c56b8854 - languageName: node - linkType: hard - "@radix-ui/react-compose-refs@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-compose-refs@npm:1.0.1" @@ -4008,17 +3988,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-context@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-context@npm:1.0.0" - dependencies: - "@babel/runtime": "npm:^7.13.10" - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: 10c0/3744c8f6291d1c0645dfb2497e232b2084f8c62075258370987592e3533710dc84b8ae983489ca354c0567eff3f311230f6c696bc4536ba0e431068b79196b00 - languageName: node - linkType: hard - "@radix-ui/react-context@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-context@npm:1.0.1" @@ -4034,32 +4003,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-dialog@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-dialog@npm:1.0.0" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/primitive": "npm:1.0.0" - "@radix-ui/react-compose-refs": "npm:1.0.0" - "@radix-ui/react-context": "npm:1.0.0" - "@radix-ui/react-dismissable-layer": "npm:1.0.0" - "@radix-ui/react-focus-guards": "npm:1.0.0" - "@radix-ui/react-focus-scope": "npm:1.0.0" - "@radix-ui/react-id": "npm:1.0.0" - "@radix-ui/react-portal": "npm:1.0.0" - "@radix-ui/react-presence": "npm:1.0.0" - "@radix-ui/react-primitive": "npm:1.0.0" - "@radix-ui/react-slot": "npm:1.0.0" - "@radix-ui/react-use-controllable-state": "npm:1.0.0" - aria-hidden: "npm:^1.1.1" - react-remove-scroll: "npm:2.5.4" - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 10c0/af2afc8b88f6fc542d6e4d8594afcf038dff47baed76fccbc619e1ac99c7a6d0735ef736bfa1c89d64a56f0e0a70c01f8290ffc5c1e03dde7c643a09b6541b05 - languageName: node - linkType: hard - "@radix-ui/react-dialog@npm:1.0.5, @radix-ui/react-dialog@npm:^1.0.4, @radix-ui/react-dialog@npm:^1.0.5": version: 1.0.5 resolution: "@radix-ui/react-dialog@npm:1.0.5" @@ -4108,23 +4051,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-dismissable-layer@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-dismissable-layer@npm:1.0.0" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/primitive": "npm:1.0.0" - "@radix-ui/react-compose-refs": "npm:1.0.0" - "@radix-ui/react-primitive": "npm:1.0.0" - "@radix-ui/react-use-callback-ref": "npm:1.0.0" - "@radix-ui/react-use-escape-keydown": "npm:1.0.0" - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 10c0/4aec9216d85671ea1c22ac56f0bf98dde3ddc10d912bedc9bfdbc230057411c4567cdb014fc006495bcbffeffab904fbfa0622e1bbd8b30c9bb327e0304dea33 - languageName: node - linkType: hard - "@radix-ui/react-dismissable-layer@npm:1.0.5": version: 1.0.5 resolution: "@radix-ui/react-dismissable-layer@npm:1.0.5" @@ -4175,17 +4101,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-focus-guards@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-focus-guards@npm:1.0.0" - dependencies: - "@babel/runtime": "npm:^7.13.10" - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: 10c0/3b6578b31ad042d06e00fc511cd465fb019cfc2726edcd9b56a6d47f22049c1c6f1aec203a099c9f1e1bb5870c47cfaf9a969a5448159b90346b47b8c24ceef7 - languageName: node - linkType: hard - "@radix-ui/react-focus-guards@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-focus-guards@npm:1.0.1" @@ -4201,21 +4116,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-focus-scope@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-focus-scope@npm:1.0.0" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/react-compose-refs": "npm:1.0.0" - "@radix-ui/react-primitive": "npm:1.0.0" - "@radix-ui/react-use-callback-ref": "npm:1.0.0" - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 10c0/0c4cad9c3db4cb7882435fac05ee7ae3b3e0244410d9b8d264370a1edf56b0c7285df6dffe556ba7939f4a3d887d0d5044acee8cb2f04818b91bcbe9b912c2a7 - languageName: node - linkType: hard - "@radix-ui/react-focus-scope@npm:1.0.4": version: 1.0.4 resolution: "@radix-ui/react-focus-scope@npm:1.0.4" @@ -4275,18 +4175,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-id@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-id@npm:1.0.0" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/react-use-layout-effect": "npm:1.0.0" - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: 10c0/56e9817abdc209e0d5169ba2e6d3de477101650b02c04f7f1477800cfd3a9e8bc415bcd14760557a17de8cfcae571342e4f6a5ec182b05d613ae7d77309a861c - languageName: node - linkType: hard - "@radix-ui/react-id@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-id@npm:1.0.1" @@ -4456,19 +4344,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-portal@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-portal@npm:1.0.0" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/react-primitive": "npm:1.0.0" - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 10c0/c7330e05d99cbb52bfc16c60c996edf2ace0d80b78eb3828dbce45fe53558a5474dfc347d152a956259740d37d92ec63a88638a22ab808c5f80681f1ad41a810 - languageName: node - linkType: hard - "@radix-ui/react-portal@npm:1.0.4": version: 1.0.4 resolution: "@radix-ui/react-portal@npm:1.0.4" @@ -4489,20 +4364,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-presence@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-presence@npm:1.0.0" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/react-compose-refs": "npm:1.0.0" - "@radix-ui/react-use-layout-effect": "npm:1.0.0" - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 10c0/2d696781e58f7acc45df2965b4756d5072a80704677cb6905a927754bd2076c87cd137820d3e58d8c2118a9b12aaa82fee79c6fef49b80012a12983002101fc5 - languageName: node - linkType: hard - "@radix-ui/react-presence@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-presence@npm:1.0.1" @@ -4524,19 +4385,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-primitive@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-primitive@npm:1.0.0" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/react-slot": "npm:1.0.0" - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 10c0/a68b3afe6eb39e1c73d6cc162283ce071b2a5793e5c417547a0b43281654346be7474f51c7055b5d2636667efbab863eb76f785e8484e63c670b0a9d863684be - languageName: node - linkType: hard - "@radix-ui/react-primitive@npm:1.0.3": version: 1.0.3 resolution: "@radix-ui/react-primitive@npm:1.0.3" @@ -4724,18 +4572,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-slot@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-slot@npm:1.0.0" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/react-compose-refs": "npm:1.0.0" - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: 10c0/a02573ae7c637b16a72d8511d879db37f33cf35b34b8d2cfe507ba8312abbb8e4075b0cb8cd39c5ba89ce341045375f83634457113256321e7a4c3c3638d2955 - languageName: node - linkType: hard - "@radix-ui/react-slot@npm:1.0.2, @radix-ui/react-slot@npm:^1.0.2": version: 1.0.2 resolution: "@radix-ui/react-slot@npm:1.0.2" @@ -4910,17 +4746,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-use-callback-ref@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-use-callback-ref@npm:1.0.0" - dependencies: - "@babel/runtime": "npm:^7.13.10" - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: 10c0/91bf130d39cfbda61de83fd4a6893cf459b3d72ec01268e3761eafd3c709f70f82940a6b46676ba6fe06fc707fdefe580946b3b99bb2af5f59887aa203e56533 - languageName: node - linkType: hard - "@radix-ui/react-use-callback-ref@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-use-callback-ref@npm:1.0.1" @@ -4936,18 +4761,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-use-controllable-state@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-use-controllable-state@npm:1.0.0" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/react-use-callback-ref": "npm:1.0.0" - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: 10c0/fa2ad3b70bec91b628883455152b7ce19d321199e3677051822c14aa3941901f5fd14cddec1c9ab0998e4061fd3b8397727aef856fec099c419d8e1e3d7f75de - languageName: node - linkType: hard - "@radix-ui/react-use-controllable-state@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-use-controllable-state@npm:1.0.1" @@ -4964,18 +4777,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-use-escape-keydown@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-use-escape-keydown@npm:1.0.0" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/react-use-callback-ref": "npm:1.0.0" - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: 10c0/a64e8dbd0e37b53c6cb9f370923afbf29646d6c28dcadd2a7076451692b70263916b9926322ecd7cc3975b2a5111903ec5abcda7e389b35ef197eb1aba17be38 - languageName: node - linkType: hard - "@radix-ui/react-use-escape-keydown@npm:1.0.3": version: 1.0.3 resolution: "@radix-ui/react-use-escape-keydown@npm:1.0.3" @@ -4992,17 +4793,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-use-layout-effect@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-use-layout-effect@npm:1.0.0" - dependencies: - "@babel/runtime": "npm:^7.13.10" - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: 10c0/04bbcddbfaa2863cbd64978b70925d0a0b664131f8c33a518b0df2866966840b3d72302258b0f8cb7ed45b50b6d52d6cbdca00cc159c47f323eb8d7b70126d83 - languageName: node - linkType: hard - "@radix-ui/react-use-layout-effect@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-use-layout-effect@npm:1.0.1" @@ -9061,15 +8851,16 @@ __metadata: languageName: node linkType: hard -"cmdk@npm:^0.2.0": - version: 0.2.1 - resolution: "cmdk@npm:0.2.1" +"cmdk@npm:^1.0.0": + version: 1.0.0 + resolution: "cmdk@npm:1.0.0" dependencies: - "@radix-ui/react-dialog": "npm:1.0.0" + "@radix-ui/react-dialog": "npm:1.0.5" + "@radix-ui/react-primitive": "npm:1.0.3" peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: 10c0/8cc3f256a5e40f7ac535dd6b3eabfeff2ff817d694dd569047efafb8620fff9575d0612ed023886e98e8f8595947458fee562389b19be2eb2f3c4835117cac7c + checksum: 10c0/bf1c9cfce46f2f507ab95735fa08c9aa27e76ecdff87720cc51ae89dbf4814b7559668458f66ff4c3932a88a6b9d8817be05c3cc4ff98bc40c3645acf4a97376 languageName: node linkType: hard @@ -12362,7 +12153,7 @@ __metadata: autoprefixer: "npm:10.4.15" class-variance-authority: "npm:^0.7.0" clsx: "npm:^2.1.0" - cmdk: "npm:^0.2.0" + cmdk: "npm:^1.0.0" date-fns: "npm:^2.30.0" embla-carousel-react: "npm:^8.0.0" eslint: "npm:^8.49.0" @@ -16791,25 +16582,6 @@ __metadata: languageName: node linkType: hard -"react-remove-scroll@npm:2.5.4": - version: 2.5.4 - resolution: "react-remove-scroll@npm:2.5.4" - dependencies: - react-remove-scroll-bar: "npm:^2.3.3" - react-style-singleton: "npm:^2.2.1" - tslib: "npm:^2.1.0" - use-callback-ref: "npm:^1.3.0" - use-sidecar: "npm:^1.1.2" - peerDependencies: - "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/8d5436c6738f4bf2ee56851280cf669202ccb4d796e29ce509549c57393ce21846840d5f9b747749192f122c404e3bd540fdb51aec14b1a5ce24126925ce45eb - languageName: node - linkType: hard - "react-remove-scroll@npm:2.5.5": version: 2.5.5 resolution: "react-remove-scroll@npm:2.5.5"