diff --git a/package.json b/package.json index 283427d..70b149e 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "ncp": "^2.0.0", "prettier": "^2.8.0", "prettier-plugin-svelte": "^2.8.1", + "qrious": "^4.0.2", "sass": "^1.55.0", "semver": "^7.5.4", "sirv-cli": "^2.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9640f24..f5bc74c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -61,6 +61,9 @@ devDependencies: prettier-plugin-svelte: specifier: ^2.8.1 version: 2.10.1(prettier@2.8.8)(svelte@3.59.2) + qrious: + specifier: ^4.0.2 + version: 4.0.2 sass: specifier: ^1.55.0 version: 1.64.1 @@ -1692,6 +1695,10 @@ packages: engines: {node: '>=6'} dev: true + /qrious@4.0.2: + resolution: {integrity: sha512-xWPJIrK1zu5Ypn898fBp8RHkT/9ibquV2Kv24S/JY9VYEhMBMKur1gHVsOiNUh7PHP9uCgejjpZUHUIXXKoU/g==} + dev: true + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true diff --git a/src/app.scss b/src/app.scss index 6bc733a..04b76f8 100644 --- a/src/app.scss +++ b/src/app.scss @@ -53,6 +53,7 @@ body { --grey-nine: hsla(240, 6%, 7%, 0.3); --grey-ten: hsl(230, 9.5%, 17.5%); --grey-eleven: hsl(208, 10%, 40%); + --red-one: hsl(333, 84%, 62%); --bezier-one: cubic-bezier(0.25, 0.46, 0.45, 0.94); --drop-shadow-one: 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12), 0px 2px 4px -1px rgba(0, 0, 0, 0.2); diff --git a/src/data/api/index.ts b/src/data/api/index.ts index a41251c..b1cfc70 100644 --- a/src/data/api/index.ts +++ b/src/data/api/index.ts @@ -1,11 +1,21 @@ import * as settings from './settings'; // API Endpoints -import type { Patch, Repository, Metadata, Asset } from '$lib/types'; +import type { + Patch, + Repository, + Metadata, + Asset, + TeamMember, + DonationPlatform, + CryptoWallet +} from '$lib/types'; export type ReposData = Repository[]; export type PatchesData = { patches: Patch[]; packages: string[] }; export type ReleaseData = { metadata: Metadata; assets: Asset[] }; +export type TeamData = { members: TeamMember[] }; +export type DonationData = { wallets: CryptoWallet[]; platforms: DonationPlatform[] }; async function get_json(endpoint: string) { const url = `${settings.api_base_url()}/${endpoint}`; @@ -42,6 +52,17 @@ async function patches(): Promise { return { patches: json.patches, packages }; } +async function team(): Promise { + const json = await get_json('v2/team/members'); + return { members: json.members }; +} + +async function donate(): Promise { + const json = await get_json('v2/donations'); + + return { wallets: json.donations.wallets, platforms: json.donations.links }; +} + export const staleTime = 5 * 60 * 1000; export const queries = { manager: { @@ -58,5 +79,15 @@ export const queries = { queryKey: ['repositories'], queryFn: repositories, staleTime + }, + team: { + queryKey: ['team'], + queryFn: team, + staleTime + }, + donate: { + queryKey: ['donate'], + queryFn: donate, + staleTime } }; diff --git a/src/layout/Footer/FooterHost.svelte b/src/layout/Footer/FooterHost.svelte index 381cfa7..32acbd1 100644 --- a/src/layout/Footer/FooterHost.svelte +++ b/src/layout/Footer/FooterHost.svelte @@ -53,6 +53,7 @@
  • Download
  • Patches
  • Contributors
  • +
  • Donate
  • Docs
  • @@ -90,7 +91,7 @@ diff --git a/src/layout/Navbar/NavButton.svelte b/src/layout/Navbar/NavButton.svelte index ae2ffce..8aa305b 100644 --- a/src/layout/Navbar/NavButton.svelte +++ b/src/layout/Navbar/NavButton.svelte @@ -7,13 +7,21 @@ const client = useQueryClient(); export let href: string; - export let queryKey: null | keyof typeof queries = null; + export let queryKey: null | keyof typeof queries | Array = null; function prefetch() { if (queryKey !== null) { - const query = queries[queryKey]; - dev_log('Prefetching', query); - client.prefetchQuery(query as any); + if (Array.isArray(queryKey)) { + queryKey.forEach((key) => { + const query = queries[key]; + dev_log('Prefetching', query); + client.prefetchQuery(query as any); + }); + } else { + const query = queries[queryKey]; + dev_log('Prefetching', query); + client.prefetchQuery(query as any); + } } } diff --git a/src/layout/Navbar/NavHost.svelte b/src/layout/Navbar/NavHost.svelte index 0eff5d9..2834f89 100644 --- a/src/layout/Navbar/NavHost.svelte +++ b/src/layout/Navbar/NavHost.svelte @@ -52,6 +52,8 @@