Optimize catogorys

This commit is contained in:
Cooper Ransom 2024-04-05 10:48:47 -04:00
parent 1c05050faa
commit 11ef435001
3 changed files with 51 additions and 47 deletions

View File

@ -120,7 +120,7 @@
"tailwindcss": "^3.4.3", "tailwindcss": "^3.4.3",
"tailwindcss-themer": "^4.0.0", "tailwindcss-themer": "^4.0.0",
"type-fest": "^4.15.0", "type-fest": "^4.15.0",
"typescript": "^5.4.3", "typescript": "^5.4.4",
"vite": "^5.2.8", "vite": "^5.2.8",
"vite-plugin-checker": "^0.6.4", "vite-plugin-checker": "^0.6.4",
"vite-plugin-package-version": "^1.1.0", "vite-plugin-package-version": "^1.1.0",

View File

@ -211,10 +211,10 @@ devDependencies:
version: 7.5.8 version: 7.5.8
'@typescript-eslint/eslint-plugin': '@typescript-eslint/eslint-plugin':
specifier: ^6.21.0 specifier: ^6.21.0
version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.3) version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.4)
'@typescript-eslint/parser': '@typescript-eslint/parser':
specifier: ^6.21.0 specifier: ^6.21.0
version: 6.21.0(eslint@8.57.0)(typescript@5.4.3) version: 6.21.0(eslint@8.57.0)(typescript@5.4.4)
'@vitejs/plugin-react': '@vitejs/plugin-react':
specifier: ^4.2.1 specifier: ^4.2.1
version: 4.2.1(vite@5.2.8) version: 4.2.1(vite@5.2.8)
@ -291,14 +291,14 @@ devDependencies:
specifier: ^4.15.0 specifier: ^4.15.0
version: 4.15.0 version: 4.15.0
typescript: typescript:
specifier: ^5.4.3 specifier: ^5.4.4
version: 5.4.3 version: 5.4.4
vite: vite:
specifier: ^5.2.8 specifier: ^5.2.8
version: 5.2.8(@types/node@20.12.4) version: 5.2.8(@types/node@20.12.4)
vite-plugin-checker: vite-plugin-checker:
specifier: ^0.6.4 specifier: ^0.6.4
version: 0.6.4(eslint@8.57.0)(typescript@5.4.3)(vite@5.2.8) version: 0.6.4(eslint@8.57.0)(typescript@5.4.4)(vite@5.2.8)
vite-plugin-package-version: vite-plugin-package-version:
specifier: ^1.1.0 specifier: ^1.1.0
version: 1.1.0(vite@5.2.8) version: 1.1.0(vite@5.2.8)
@ -2166,8 +2166,8 @@ packages:
'@babel/types': 7.24.0 '@babel/types': 7.24.0
dev: true dev: true
/@types/chrome@0.0.263: /@types/chrome@0.0.265:
resolution: {integrity: sha512-As0vzv99ov3M6ZR7R6VzhMWFZXkPMrFrCEXXVrMN576Cm70fTkj7Df2CF+qEo170JepX50pd11cX6O4DSAtl2Q==} resolution: {integrity: sha512-wusn3sa1C0UOGs7B07EHgCin/G8TQQXWFJhI8F5uwJ0dNGYBj5/+JPmP/l+x+E2ntXXyX/eeN2Bj6Sk6dzMEtA==}
dependencies: dependencies:
'@types/filesystem': 0.0.36 '@types/filesystem': 0.0.36
'@types/har-format': 1.2.15 '@types/har-format': 1.2.15
@ -2176,7 +2176,7 @@ packages:
/@types/chromecast-caf-sender@1.0.9: /@types/chromecast-caf-sender@1.0.9:
resolution: {integrity: sha512-+u4Y5O4OkkNjG+V2l2Cnsw6pSYS+lg4Jlnxh+FVVqdnXp+M8R4Umor1C3JA6u/iXCpTmIndOaBvZa3bMhGZgnw==} resolution: {integrity: sha512-+u4Y5O4OkkNjG+V2l2Cnsw6pSYS+lg4Jlnxh+FVVqdnXp+M8R4Umor1C3JA6u/iXCpTmIndOaBvZa3bMhGZgnw==}
dependencies: dependencies:
'@types/chrome': 0.0.263 '@types/chrome': 0.0.265
dev: true dev: true
/@types/crypto-js@4.2.2: /@types/crypto-js@4.2.2:
@ -2336,7 +2336,7 @@ packages:
resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
dev: true dev: true
/@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.3): /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.4):
resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==}
engines: {node: ^16.0.0 || >=18.0.0} engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies: peerDependencies:
@ -2348,10 +2348,10 @@ packages:
optional: true optional: true
dependencies: dependencies:
'@eslint-community/regexpp': 4.10.0 '@eslint-community/regexpp': 4.10.0
'@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.3) '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.4)
'@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/scope-manager': 6.21.0
'@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.4.3) '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.4.4)
'@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.3) '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.4)
'@typescript-eslint/visitor-keys': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0
debug: 4.3.4 debug: 4.3.4
eslint: 8.57.0 eslint: 8.57.0
@ -2359,13 +2359,13 @@ packages:
ignore: 5.3.1 ignore: 5.3.1
natural-compare: 1.4.0 natural-compare: 1.4.0
semver: 7.6.0 semver: 7.6.0
ts-api-utils: 1.3.0(typescript@5.4.3) ts-api-utils: 1.3.0(typescript@5.4.4)
typescript: 5.4.3 typescript: 5.4.4
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3): /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.4):
resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
engines: {node: ^16.0.0 || >=18.0.0} engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies: peerDependencies:
@ -2377,11 +2377,11 @@ packages:
dependencies: dependencies:
'@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/scope-manager': 6.21.0
'@typescript-eslint/types': 6.21.0 '@typescript-eslint/types': 6.21.0
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.3) '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.4)
'@typescript-eslint/visitor-keys': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0
debug: 4.3.4 debug: 4.3.4
eslint: 8.57.0 eslint: 8.57.0
typescript: 5.4.3 typescript: 5.4.4
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
@ -2394,7 +2394,7 @@ packages:
'@typescript-eslint/visitor-keys': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0
dev: true dev: true
/@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.4.3): /@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.4.4):
resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==}
engines: {node: ^16.0.0 || >=18.0.0} engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies: peerDependencies:
@ -2404,12 +2404,12 @@ packages:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.3) '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.4)
'@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.3) '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.4)
debug: 4.3.4 debug: 4.3.4
eslint: 8.57.0 eslint: 8.57.0
ts-api-utils: 1.3.0(typescript@5.4.3) ts-api-utils: 1.3.0(typescript@5.4.4)
typescript: 5.4.3 typescript: 5.4.4
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
@ -2419,7 +2419,7 @@ packages:
engines: {node: ^16.0.0 || >=18.0.0} engines: {node: ^16.0.0 || >=18.0.0}
dev: true dev: true
/@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3): /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.4):
resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
engines: {node: ^16.0.0 || >=18.0.0} engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies: peerDependencies:
@ -2435,13 +2435,13 @@ packages:
is-glob: 4.0.3 is-glob: 4.0.3
minimatch: 9.0.3 minimatch: 9.0.3
semver: 7.6.0 semver: 7.6.0
ts-api-utils: 1.3.0(typescript@5.4.3) ts-api-utils: 1.3.0(typescript@5.4.4)
typescript: 5.4.3 typescript: 5.4.4
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.4.3): /@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.4.4):
resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==}
engines: {node: ^16.0.0 || >=18.0.0} engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies: peerDependencies:
@ -2452,7 +2452,7 @@ packages:
'@types/semver': 7.5.8 '@types/semver': 7.5.8
'@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/scope-manager': 6.21.0
'@typescript-eslint/types': 6.21.0 '@typescript-eslint/types': 6.21.0
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.3) '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.4)
eslint: 8.57.0 eslint: 8.57.0
semver: 7.6.0 semver: 7.6.0
transitivePeerDependencies: transitivePeerDependencies:
@ -2750,7 +2750,7 @@ packages:
postcss: '>=8.4.31' postcss: '>=8.4.31'
dependencies: dependencies:
browserslist: 4.23.0 browserslist: 4.23.0
caniuse-lite: 1.0.30001605 caniuse-lite: 1.0.30001606
fraction.js: 4.3.7 fraction.js: 4.3.7
normalize-range: 0.1.2 normalize-range: 0.1.2
picocolors: 1.0.0 picocolors: 1.0.0
@ -2854,8 +2854,8 @@ 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.30001605 caniuse-lite: 1.0.30001606
electron-to-chromium: 1.4.726 electron-to-chromium: 1.4.728
node-releases: 2.0.14 node-releases: 2.0.14
update-browserslist-db: 1.0.13(browserslist@4.23.0) update-browserslist-db: 1.0.13(browserslist@4.23.0)
@ -2894,8 +2894,8 @@ packages:
engines: {node: '>= 6'} engines: {node: '>= 6'}
dev: true dev: true
/caniuse-lite@1.0.30001605: /caniuse-lite@1.0.30001606:
resolution: {integrity: sha512-nXwGlFWo34uliI9z3n6Qc0wZaf7zaZWA1CPZ169La5mV3I/gem7bst0vr5XQH5TJXZIMfDeZyOrZnSlVzKxxHQ==} resolution: {integrity: sha512-LPbwnW4vfpJId225pwjZJOgX1m9sGfbw/RKJvw/t0QhYOOaTXHvkjVGFGPpvwEzufrjvTlsULnVTxdy4/6cqkg==}
/chai@4.4.1: /chai@4.4.1:
resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==}
@ -3361,8 +3361,8 @@ packages:
jake: 10.8.7 jake: 10.8.7
dev: true dev: true
/electron-to-chromium@1.4.726: /electron-to-chromium@1.4.728:
resolution: {integrity: sha512-xtjfBXn53RORwkbyKvDfTajtnTp0OJoPOIBzXvkNbb7+YYvCHJflba3L7Txyx/6Fov3ov2bGPr/n5MTixmPhdQ==} resolution: {integrity: sha512-Ud1v7hJJYIqehlUJGqR6PF1Ek8l80zWwxA6nGxigBsGJ9f9M2fciHyrIiNMerSHSH3p+0/Ia7jIlnDkt41h5cw==}
/emoji-regex@8.0.0: /emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@ -3647,7 +3647,7 @@ packages:
eslint-import-resolver-webpack: eslint-import-resolver-webpack:
optional: true optional: true
dependencies: dependencies:
'@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.3) '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.4)
debug: 3.2.7 debug: 3.2.7
eslint: 8.57.0 eslint: 8.57.0
eslint-import-resolver-node: 0.3.9 eslint-import-resolver-node: 0.3.9
@ -3666,7 +3666,7 @@ packages:
'@typescript-eslint/parser': '@typescript-eslint/parser':
optional: true optional: true
dependencies: dependencies:
'@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.3) '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.4)
array-includes: 3.1.8 array-includes: 3.1.8
array.prototype.findlastindex: 1.2.5 array.prototype.findlastindex: 1.2.5
array.prototype.flat: 1.3.2 array.prototype.flat: 1.3.2
@ -6514,13 +6514,13 @@ packages:
punycode: 2.3.1 punycode: 2.3.1
dev: true dev: true
/ts-api-utils@1.3.0(typescript@5.4.3): /ts-api-utils@1.3.0(typescript@5.4.4):
resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
engines: {node: '>=16'} engines: {node: '>=16'}
peerDependencies: peerDependencies:
typescript: '>=4.2.0' typescript: '>=4.2.0'
dependencies: dependencies:
typescript: 5.4.3 typescript: 5.4.4
dev: true dev: true
/ts-easing@0.2.0: /ts-easing@0.2.0:
@ -6625,8 +6625,8 @@ packages:
hasBin: true hasBin: true
dev: false dev: false
/typescript@5.4.3: /typescript@5.4.4:
resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} resolution: {integrity: sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==}
engines: {node: '>=14.17'} engines: {node: '>=14.17'}
hasBin: true hasBin: true
dev: true dev: true
@ -6769,7 +6769,7 @@ packages:
- terser - terser
dev: true dev: true
/vite-plugin-checker@0.6.4(eslint@8.57.0)(typescript@5.4.3)(vite@5.2.8): /vite-plugin-checker@0.6.4(eslint@8.57.0)(typescript@5.4.4)(vite@5.2.8):
resolution: {integrity: sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==} resolution: {integrity: sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==}
engines: {node: '>=14.16'} engines: {node: '>=14.16'}
peerDependencies: peerDependencies:
@ -6812,7 +6812,7 @@ packages:
semver: 7.6.0 semver: 7.6.0
strip-ansi: 6.0.1 strip-ansi: 6.0.1
tiny-invariant: 1.3.3 tiny-invariant: 1.3.3
typescript: 5.4.3 typescript: 5.4.4
vite: 5.2.8(@types/node@20.12.4) vite: 5.2.8(@types/node@20.12.4)
vscode-languageclient: 7.0.0 vscode-languageclient: 7.0.0
vscode-languageserver: 7.0.0 vscode-languageserver: 7.0.0

View File

@ -52,6 +52,10 @@ const categories: Category[] = [
name: "Top Rated", name: "Top Rated",
endpoint: "/movie/top_rated?language=en-US", endpoint: "/movie/top_rated?language=en-US",
}, },
{
name: "Most Popular",
endpoint: "/movie/popular?language=en-US",
},
]; ];
export function Discover() { export function Discover() {
@ -119,8 +123,8 @@ export function Discover() {
[data.genres[i], data.genres[j]] = [data.genres[j], data.genres[i]]; [data.genres[i], data.genres[j]] = [data.genres[j], data.genres[i]];
} }
// Fetch only the first 5 TV show genres // Fetch only the first 6 TV show genres
setTVGenres(data.genres.slice(0, 5)); setTVGenres(data.genres.slice(0, 6));
} catch (error) { } catch (error) {
console.error("Error fetching TV show genres:", error); console.error("Error fetching TV show genres:", error);
} }
@ -384,8 +388,8 @@ export function Discover() {
[data.genres[i], data.genres[j]] = [data.genres[j], data.genres[i]]; [data.genres[i], data.genres[j]] = [data.genres[j], data.genres[i]];
} }
// Fetch only the first 5 genres // Fetch only the first 6 genres
setGenres(data.genres.slice(0, 5)); setGenres(data.genres.slice(0, 6));
} catch (error) { } catch (error) {
console.error("Error fetching genres:", error); console.error("Error fetching genres:", error);
} }