diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0b502718..c4bda409 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,13 +29,13 @@ importers: devDependencies: '@sveltejs/adapter-static': specifier: 3.0.2 - version: 3.0.2(@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.3.3(sass@1.77.8)))(svelte@4.2.19)(vite@5.3.3(sass@1.77.8))) + version: 3.0.2(@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.8(sass@1.77.8)))(svelte@4.2.19)(vite@5.4.8(sass@1.77.8))) '@sveltejs/kit': specifier: 2.5.18 - version: 2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.3.3(sass@1.77.8)))(svelte@4.2.19)(vite@5.3.3(sass@1.77.8)) + version: 2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.8(sass@1.77.8)))(svelte@4.2.19)(vite@5.4.8(sass@1.77.8)) '@sveltejs/vite-plugin-svelte': specifier: 3.1.1 - version: 3.1.1(svelte@4.2.19)(vite@5.3.3(sass@1.77.8)) + version: 3.1.1(svelte@4.2.19)(vite@5.4.8(sass@1.77.8)) '@typescript-eslint/eslint-plugin': specifier: 7.16.0 version: 7.16.0(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3) @@ -91,8 +91,8 @@ importers: specifier: 5.5.3 version: 5.5.3 vite: - specifier: 5.3.3 - version: 5.3.3(sass@1.77.8) + specifier: ^5.4.7 + version: 5.4.8(sass@1.77.8) vite-imagetools: specifier: 7.0.4 version: 7.0.4(rollup@4.20.0) @@ -1143,6 +1143,9 @@ packages: picocolors@1.0.1: resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -1179,6 +1182,10 @@ packages: resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} engines: {node: ^10 || ^12 || >=14} + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} + engines: {node: ^10 || ^12 || >=14} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -1299,6 +1306,10 @@ packages: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -1432,8 +1443,8 @@ packages: resolution: {integrity: sha512-C9C7b2p/8/TCN2g26tE9haoer2i8K4x0v2RXUiHsIjiz221vQuKItCQ+VyiVCsUMPXfJC/tlZsmCZVBz5jh7uA==} engines: {node: '>=18.0.0'} - vite@5.3.3: - resolution: {integrity: sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==} + vite@5.4.8: + resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -1441,6 +1452,7 @@ packages: less: '*' lightningcss: ^1.21.0 sass: '*' + sass-embedded: '*' stylus: '*' sugarss: '*' terser: ^5.4.0 @@ -1453,6 +1465,8 @@ packages: optional: true sass: optional: true + sass-embedded: + optional: true stylus: optional: true sugarss: @@ -1766,13 +1780,13 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.20.0': optional: true - '@sveltejs/adapter-static@3.0.2(@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.3.3(sass@1.77.8)))(svelte@4.2.19)(vite@5.3.3(sass@1.77.8)))': + '@sveltejs/adapter-static@3.0.2(@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.8(sass@1.77.8)))(svelte@4.2.19)(vite@5.4.8(sass@1.77.8)))': dependencies: - '@sveltejs/kit': 2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.3.3(sass@1.77.8)))(svelte@4.2.19)(vite@5.3.3(sass@1.77.8)) + '@sveltejs/kit': 2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.8(sass@1.77.8)))(svelte@4.2.19)(vite@5.4.8(sass@1.77.8)) - '@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.3.3(sass@1.77.8)))(svelte@4.2.19)(vite@5.3.3(sass@1.77.8))': + '@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.8(sass@1.77.8)))(svelte@4.2.19)(vite@5.4.8(sass@1.77.8))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.19)(vite@5.3.3(sass@1.77.8)) + '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.19)(vite@5.4.8(sass@1.77.8)) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 5.0.0 @@ -1786,28 +1800,28 @@ snapshots: sirv: 2.0.4 svelte: 4.2.19 tiny-glob: 0.2.9 - vite: 5.3.3(sass@1.77.8) + vite: 5.4.8(sass@1.77.8) - '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.3.3(sass@1.77.8)))(svelte@4.2.19)(vite@5.3.3(sass@1.77.8))': + '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.8(sass@1.77.8)))(svelte@4.2.19)(vite@5.4.8(sass@1.77.8))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.19)(vite@5.3.3(sass@1.77.8)) + '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.19)(vite@5.4.8(sass@1.77.8)) debug: 4.3.6 svelte: 4.2.19 - vite: 5.3.3(sass@1.77.8) + vite: 5.4.8(sass@1.77.8) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.3.3(sass@1.77.8))': + '@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.8(sass@1.77.8))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.3.3(sass@1.77.8)))(svelte@4.2.19)(vite@5.3.3(sass@1.77.8)) + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.8(sass@1.77.8)))(svelte@4.2.19)(vite@5.4.8(sass@1.77.8)) debug: 4.3.6 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.11 svelte: 4.2.19 svelte-hmr: 0.16.0(svelte@4.2.19) - vite: 5.3.3(sass@1.77.8) - vitefu: 0.2.5(vite@5.3.3(sass@1.77.8)) + vite: 5.4.8(sass@1.77.8) + vitefu: 0.2.5(vite@5.4.8(sass@1.77.8)) transitivePeerDependencies: - supports-color @@ -2441,6 +2455,8 @@ snapshots: picocolors@1.0.1: {} + picocolors@1.1.0: {} + picomatch@2.3.1: {} postcss-load-config@3.1.4(postcss@8.4.41): @@ -2469,6 +2485,12 @@ snapshots: picocolors: 1.0.1 source-map-js: 1.2.0 + postcss@8.4.47: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.1 + prelude-ls@1.2.1: {} prettier-plugin-svelte@3.2.5(prettier@3.3.2)(svelte@4.2.19): @@ -2617,6 +2639,8 @@ snapshots: source-map-js@1.2.0: {} + source-map-js@1.2.1: {} + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -2746,18 +2770,18 @@ snapshots: transitivePeerDependencies: - rollup - vite@5.3.3(sass@1.77.8): + vite@5.4.8(sass@1.77.8): dependencies: esbuild: 0.21.5 - postcss: 8.4.41 + postcss: 8.4.47 rollup: 4.20.0 optionalDependencies: fsevents: 2.3.3 sass: 1.77.8 - vitefu@0.2.5(vite@5.3.3(sass@1.77.8)): + vitefu@0.2.5(vite@5.4.8(sass@1.77.8)): optionalDependencies: - vite: 5.3.3(sass@1.77.8) + vite: 5.4.8(sass@1.77.8) which@2.0.2: dependencies: diff --git a/src/data/api/index.ts b/src/data/api/index.ts index 84b3c01c..b5f61948 100644 --- a/src/data/api/index.ts +++ b/src/data/api/index.ts @@ -22,7 +22,7 @@ export type TeamData = { members: TeamMember[] }; export type AboutData = { about: About }; export type DonationData = { wallets: CryptoWallet[]; platforms: DonationPlatform[] }; export type SocialsData = { socials: Social[] }; -export type AnnouncementsData = { announcements: Announcement[] }; +export type AnnouncementsData = { announcements: Map }; type ApiAnnouncementCreate = { archivedAt?: string; @@ -118,103 +118,131 @@ async function about(): Promise { return { about: json }; } -async function announcements(channel?: string): Promise { +async function announcements(): Promise { // const json = await get_json(channel ? `v3/announcements/${channel}` : 'v3/announcements'); // return { announcements: json.reverse() }; - return { - announcements: [ - { - author: 'madkarmaa', - channel: 'test', - content: 'short content', - createdAt: { - value: '2024-09-03T15:53:01.532Z' - }, - id: 69, - level: 69, - title: 'test title', - attachmentUrls: [ - 'https://repository-images.githubusercontent.com/731390704/b0ddaf49-d868-4bb5-866c-417a86ebbf65', - 'https://repository-images.githubusercontent.com/731390704/b0ddaf49-d868-4bb5-866c-417a86ebbf65', - 'https://repository-images.githubusercontent.com/731390704/b0ddaf49-d868-4bb5-866c-417a86ebbf65' - ] - }, - { - author: 'balls', - channel: 'test2', - content: - 'Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis.', - createdAt: { - value: '2024-09-11T07:32:38.849Z' - }, - attachmentUrls: [ - 'https://repository-images.githubusercontent.com/731390704/b0ddaf49-d868-4bb5-866c-417a86ebbf65', - 'https://repository-images.githubusercontent.com/731390704/b0ddaf49-d868-4bb5-866c-417a86ebbf65', - 'https://repository-images.githubusercontent.com/731390704/b0ddaf49-d868-4bb5-866c-417a86ebbf65' - ], - id: 874, - level: 874, - title: 'test title 2' - }, - { - author: 'balls', - channel: 'test2', - content: - 'Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis.', - createdAt: { - value: '2024-09-03T15:54:31.912Z' - }, - id: 510, - level: 510, - title: 'test title 2' - }, - { - author: 'balls', - channel: 'test2', - content: - 'Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis.', - createdAt: { - value: '2024-09-03T15:54:31.912Z' - }, - attachmentUrls: [ - 'https://repository-images.githubusercontent.com/731390704/b0ddaf49-d868-4bb5-866c-417a86ebbf65', - 'https://repository-images.githubusercontent.com/731390704/b0ddaf49-d868-4bb5-866c-417a86ebbf65', - 'https://repository-images.githubusercontent.com/731390704/b0ddaf49-d868-4bb5-866c-417a86ebbf65' - ], - id: 87, - level: 87, - title: 'test title 2' - }, - { - author: 'balls', - channel: 'test2', - content: - 'Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Velit dignissimos reiciendis quo alias, nihil error eaque consectetur nam quaerat accusamus iste fugit, ad, atque placeat perferendis commodi culpa sequi nobis.', - createdAt: { - value: '2024-09-03T15:54:31.912Z' - }, - id: 8, - level: 8, - title: 'test title 2' - }, - { - author: 'madkarmaa', - channel: 'test', - content: 'short content', - createdAt: { - value: '2024-09-03T15:53:01.532Z' - }, - id: 984, - level: 984, - title: 'test title', - attachmentUrls: [ - 'https://repository-images.githubusercontent.com/731390704/b0ddaf49-d868-4bb5-866c-417a86ebbf65', - 'https://repository-images.githubusercontent.com/731390704/b0ddaf49-d868-4bb5-866c-417a86ebbf65', - 'https://repository-images.githubusercontent.com/731390704/b0ddaf49-d868-4bb5-866c-417a86ebbf65' - ] - } - ] - }; + + const announcements = [ + { + id: 1, + author: 'ReVanced', + title: 'ReVanced Manager', + content: `

Recently we noticed that many users have unknowingly been using counterfeit versions of ReVanced. As an open-source project, occasional instances like this can unfortunately occur.

While we strongly encourage freedom with what you do with ReVanced as an open-source project, it's important to note that we cannot guarantee the safety of counterfeits. Ultimately, it\'s a personal choice whom to trust.

How do I know if I am using counterfeit?

  • ReVanced is officially only available on revanced.app, and any links you can find on revanced.app
  • You downloaded any pre-patched app claiming to be ReVanced from a site other than revanced.app

Known counterfeits

A list of known counterfeit sites are:

  • revanced.net
  • revanced.to
  • revancedextended.com
  • revancedextended.io
  • revancedapp.download
  • revancedapps.com
  • revancedapk.org
  • revancedapp.io
  • revancedapk.net

I downloaded counterfeit, what now?

Suppose you downloaded a counterfeit from a domain other than revanced.app, then we strongly advise you to uninstall it and obtain the official version from revanced.app.

Unfortunately, gauging the security and safety impact of downloading counterfeits is hard. Therefore, you should update your passwords for any accounts you think may have been targeted and run a security and safety check on them.

Official links

How to get ReVanced officially?

You can use ReVanced CLI or ReVanced Manager from revanced.app to get ReVanced. Refer to the documentation in ⁠<#953993848374325269> .

`, + attachmentUrls: [], + channel: 'youtube', + createdAt: { value: '2029-10-23 19:07:31.154969' }, + level: 0 + }, + { + id: 2, + author: 'ReVanced', + title: 'Return YouTube Dislike down', + content: 'This is a test message', + attachmentUrls: [], + channel: 'revanced', + createdAt: { value: '2023-10-26 22:05:28.508306' }, + level: 0 + }, + { + id: 3, + author: 'ReVanced', + title: 'Return YouTube Dislike down', + content: 'This is a test message', + attachmentUrls: [], + channel: 'revanced', + createdAt: { value: '2023-10-26 22:05:52.443376' }, + level: 0 + }, + { + id: 4, + author: 'ReVanced', + title: 'Test title', + content: 'This is a test message', + attachmentUrls: [], + channel: 'revanced', + createdAt: { value: '2023-10-26 22:24:02.621462' }, + level: 0 + }, + { + id: 5, + author: 'ReVanced', + title: 'Test title', + content: 'This is a test message', + attachmentUrls: [ + 'https://repository-images.githubusercontent.com/731390704/b0ddaf49-d868-4bb5-866c-417a86ebbf65' + ], + channel: 'revanced', + createdAt: { value: '2023-10-26 22:27:23.246805' }, + level: 0 + }, + { + id: 6, + author: 'ReVanced', + title: 'Test title', + content: 'This is a test message', + attachmentUrls: [ + 'https://p3-ofp.static.pub/fes/cms/2022/12/07/m0521vlcnt1r2d29a50yjx8dagm5ve573937.png', + 'https://media.discordapp.net/attachments/1095487869923119144/1115436493050224660/revanced-logo.png?width=905&height=905' + ], + channel: 'revanced', + createdAt: { value: '2023-10-26 22:36:33.695140' }, + level: 2 + }, + { + id: 7, + author: 'ReVanced', + title: 'Test title', + content: 'This is a test message', + attachmentUrls: [ + 'https://p3-ofp.static.pub/fes/cms/2022/12/07/m0521vlcnt1r2d29a50yjx8dagm5ve573937.png', + 'https://media.discordapp.net/attachments/1095487869923119144/1115436493050224660/revanced-logo.png?width=905&height=905' + ], + channel: 'revanced', + createdAt: { value: '2023-10-26 22:47:05.331425' }, + level: 1 + }, + { + id: 8, + author: 'ReVanced', + title: 'Test title', + content: 'This is a test message', + attachmentUrls: [ + 'https://p3-ofp.static.pub/fes/cms/2022/12/07/m0521vlcnt1r2d29a50yjx8dagm5ve573937.png', + 'https://media.discordapp.net/attachments/1095487869923119144/1115436493050224660/revanced-logo.png?width=905&height=905' + ], + channel: 'revanced', + createdAt: { value: '2023-11-23 02:36:04.138995' }, + level: 2 + }, + { + id: 9, + author: 'ReVanced', + title: 'YouTube history fixed', + content: + '\u003Cp\u003EOn 28 Feb 2024, YouTube has changed how videos are tracked. This change broke tracking history if you used the \u003Cb\u003EClient spoof\u003C/b\u003E patch for YouTube. A fix for it has been released with the latest version of ReVanced Patches. If you experience this issue, re-patch YouTube with the latest patches to apply the fix, otherwise ignore this.\u003C/p\u003E\u003Cbr\u003E\u003Cp\u003EFor more information visit one of our links below.\u003C/p\u003E\u003Cbr\u003E\u003Ch2\u003EOfficial links\u003C/h2\u003E\u003Cbr\u003E\u003Cp\u003EReVanced is always available at \u003Ca href="https://revanced.app"\u003Erevanced.app\u003C/a\u003E.\u003C/p\u003E\u003Cbr\u003E\u003Cul\u003E\u003Cli\u003E\u003Ca href="https://revanced.app"\u003EWebsite\u003C/a\u003E\u003C/li\u003E\u003Cli\u003E\u003Ca href="https://revanced.app/discord"\u003EDiscord\u003C/a\u003E\u003C/li\u003E\u003Cli\u003E\u003Ca href="https://www.reddit.com/r/revancedapp"\u003EReddit\u003C/a\u003E\u003C/li\u003E\u003Cli\u003E\u003Ca href="https://twitter.com/revancedapp"\u003ETwitter\u003C/a\u003E\u003C/li\u003E\u003Cli\u003E\u003Ca href="https://t.me/app_revanced"\u003ETelegram\u003C/a\u003E\u003C/li\u003E\u003Cli\u003E\u003Ca href="https://www.youtube.com/@ReVanced"\u003EYouTube\u003C/a\u003E\u003C/li\u003E\u003C/ul\u003E', + attachmentUrls: [], + channel: 'youtube', + createdAt: { value: '2024-03-02 22:03:48.194543' }, + level: 0 + }, + { + id: 13, + author: 'ReVanced', + title: 'YouTube playback speed menu fixed', + content: + '\u003Cp\u003EIf you patched the YouTube app with the \u003Cb\u003EClient spoof\u003C/b\u003E patch, the video playback speed menu may have been missing.\u003Cbr\u003EThis issues has been fixed now. Patch YouTube using the latest version of \u003Ca href=https://github.com/ReVanced/revanced-patches\u003EReVanced Patches\u003C/a\u003E. Make sure to use the \u003Cb\u003EClient spoof\u003C/b\u003E patch when patching YouTube.\u003C/p\u003E\u003Cbr\u003E\u003Cp\u003EFor more information visit one of our links below.\u003C/p\u003E\u003Cbr\u003E\u003Ch2\u003EOfficial links\u003C/h2\u003E\u003Cbr\u003E\u003Cp\u003EReVanced is always available at \u003Ca href=https://revanced.app\u003Erevanced.app\u003C/a\u003E.\u003C/p\u003E\u003Cbr\u003E\u003Cul\u003E\u003Cli\u003E\u003Ca href=https://revanced.app\u003EWebsite\u003C/a\u003E\u003Cli\u003E\u003Ca href=https://revanced.app/discord\u003EDiscord\u003C/a\u003E\u003Cli\u003E\u003Ca href=https://www.reddit.com/r/revancedapp\u003EReddit\u003C/a\u003E\u003Cli\u003E\u003Ca href=https://twitter.com/revancedapp\u003ETwitter\u003C/a\u003E\u003Cli\u003E\u003Ca href=https://t.me/app_revanced\u003ETelegram\u003C/a\u003E\u003Cli\u003E\u003Ca href=https://www.youtube.com/@ReVanced\u003EYouTube\u003C/a\u003E\u003C/ul\u003E', + attachmentUrls: [], + channel: 'youtube', + createdAt: { value: '2024-06-02 23:28:57.028295' }, + level: 0 + } + ].sort((a, b) => a.id - b.id); + + const announcementsMap = new Map( + announcements.map((announcement) => [announcement.id, announcement]) + ); + + return { announcements: announcementsMap }; } async function create_announcement(announcement: ApiAnnouncementCreate) { @@ -264,9 +292,9 @@ export const queries = { queryFn: about, staleTime }), - announcements: (channel?: string) => ({ + announcements: () => ({ queryKey: ['announcements'], - queryFn: () => announcements(channel), + queryFn: () => announcements(), staleTime }) }; diff --git a/src/routes/announcements/+page.svelte b/src/routes/announcements/+page.svelte index 42364876..5c0547be 100644 --- a/src/routes/announcements/+page.svelte +++ b/src/routes/announcements/+page.svelte @@ -3,12 +3,14 @@ import { derived, readable, type Readable } from 'svelte/store'; import { building } from '$app/environment'; import { page } from '$app/stores'; + import Footer from '$layout/Footer/FooterHost.svelte'; + import { fly } from 'svelte/transition'; + import { quintOut } from 'svelte/easing'; import Query from '$lib/components/Query.svelte'; import AnnouncementCard from './AnnouncementCard.svelte'; import { queries } from '$data/api'; - import ChannelChip from './ChannelChip.svelte'; - import Masonry from '$lib/components/Masonry.svelte'; + import ChannelsHost from './ChannelsHost.svelte'; let searchParams: Readable; @@ -16,35 +18,39 @@ else searchParams = derived(page, ($page) => $page.url.searchParams); $: query = createQuery(queries.announcements()); - $: channel = $searchParams.get('channel'); - - function uniqueObjArrayByKey(array: T[], key: keyof T) { - return array.filter((obj, index, self) => index === self.findIndex((t) => t[key] === obj[key])); - } + $: channels = $searchParams.getAll('channel'); -
+
-
- {#each uniqueObjArrayByKey(data.announcements, 'channel') as ann (ann.id)} - - {/each} -
+ - - {#each channel ? data.announcements.filter((a) => a.channel === channel) : data.announcements as announcement (announcement.id)} +
+ {#each channels.length > 0 ? data.announcements + .values() + .filter( (a) => channels.includes(a.channel) ) : data.announcements.values() as announcement (announcement.id)} {/each} - +
+