Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add announcements #257

Draft
wants to merge 176 commits into
base: dev
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
176 commits
Select commit Hold shift + click to select a range
db667ca
feat: init /announcements route
madkarmaa Sep 4, 2024
28a81cf
fix: use page store to get the query params
madkarmaa Sep 4, 2024
644e46f
feat: filter ann by channel
madkarmaa Sep 4, 2024
67c368e
feat: use page store to select channel chip
madkarmaa Sep 4, 2024
8cff355
feat: add content slot
madkarmaa Sep 4, 2024
937c52d
feat: add top row with all channels
madkarmaa Sep 5, 2024
fccc607
feat: add Gallery component
madkarmaa Sep 6, 2024
fb5629c
feat: style ChannelChip
madkarmaa Sep 11, 2024
de023ca
feat: add NewChip
madkarmaa Sep 11, 2024
74a9cad
feat: add read announcement logic
madkarmaa Sep 11, 2024
e34504c
refactor: Move components to the announcements route folder
Ushie Sep 13, 2024
566a777
feat: Style the announcement cards and use mansory layout
Ushie Sep 13, 2024
b575437
fix: resolve errors
madkarmaa Sep 13, 2024
d65c01e
chore: Minor refactor and add more placeholder announcements
Ushie Sep 17, 2024
a79cbcc
Merge branch 'feat/announcements' of https://github.com/madkarmaa/rev…
Ushie Sep 17, 2024
2531051
fix: Remove unused import
Ushie Sep 17, 2024
9b7ae6c
fix: use correct types + import component
madkarmaa Sep 17, 2024
4b38e62
fix: Announcements masonry layout not displaying anything
Ushie Sep 18, 2024
f82369d
feat: add unread marker to announcement card
madkarmaa Sep 19, 2024
bf2af36
refactor: simplify read logic
madkarmaa Sep 19, 2024
06a358b
feat: add gap to channels select
madkarmaa Sep 19, 2024
0f8aa21
refactor: rename var
madkarmaa Sep 19, 2024
e9b8a44
feat: hide actions div if not admin
madkarmaa Sep 19, 2024
33c16f3
refactor: change gear icon to 3 dots icon
madkarmaa Sep 20, 2024
62398f8
refactor: reduce content preview length
madkarmaa Sep 20, 2024
05c6513
refactor: remove parentheses and newlines
madkarmaa Sep 20, 2024
ee2a577
feat: init auth module
madkarmaa Sep 21, 2024
bf64cb3
refactor: remove newline
madkarmaa Sep 21, 2024
2272dfa
feat: add post, patch and delete methods with auth
madkarmaa Sep 21, 2024
46f994b
feat: add login fn
madkarmaa Sep 23, 2024
c86187f
feat: add login btn
madkarmaa Sep 23, 2024
f1365dd
chore: update dependencies to fix vulnerability
madkarmaa Sep 24, 2024
d520d18
refactor: remove card banner
madkarmaa Sep 24, 2024
ca8365f
feat: init login functionality in dom
madkarmaa Sep 24, 2024
c98adb9
feat: add login request and token storage
madkarmaa Sep 24, 2024
444ddf1
refactor: simplify login
madkarmaa Sep 24, 2024
d18a4b3
refactor: add comment
madkarmaa Sep 24, 2024
1c3c409
feat: finish auth in dom
madkarmaa Oct 1, 2024
0a8eded
refactor: remove commented code
madkarmaa Oct 1, 2024
ca1de91
feat: add code-side digest auth
madkarmaa Oct 2, 2024
1e8842f
Merge branch 'feat/announcements' of https://github.com/madkarmaa/rev…
madkarmaa Oct 2, 2024
5431d9a
fix: return initial response if 200
madkarmaa Oct 2, 2024
5afda87
refactor: remove log
madkarmaa Oct 3, 2024
2cafb17
feat: init login modal
madkarmaa Oct 3, 2024
6b7b03b
feat: more form styles
madkarmaa Oct 7, 2024
4490a59
fix: fix auth header
madkarmaa Oct 7, 2024
e899c96
feat: hide login popup if logged in successfully
madkarmaa Oct 7, 2024
ec9714f
feat: animate input label
madkarmaa Oct 7, 2024
515b679
feat: styling (fix inputs overlap)
madkarmaa Oct 7, 2024
043feb6
fix: add body param to authored requests
madkarmaa Oct 8, 2024
7fd0876
feat: add announcement-related helper functions
madkarmaa Oct 8, 2024
a2f79ec
fix: use ? instead of | undefined
madkarmaa Oct 8, 2024
0470e44
feat: Implement majority of UI
Ushie Oct 11, 2024
c0b1664
feat: add Input component
madkarmaa Oct 12, 2024
107cadc
fix: fix input font size
madkarmaa Oct 12, 2024
9a0fd34
feat: add HA1 sha256 to session storage
madkarmaa Oct 12, 2024
147590c
feat: add login success dialog
madkarmaa Oct 12, 2024
5217fa8
fix: fix centered text
madkarmaa Oct 12, 2024
aa534c7
fix: use momentjs
madkarmaa Oct 12, 2024
b494112
fix: fix ts error
madkarmaa Oct 12, 2024
1694649
feat: set announcement read on click
madkarmaa Oct 12, 2024
44f29cf
feat: card check if user is admin
madkarmaa Oct 12, 2024
139be71
fix: fix svg size
madkarmaa Oct 12, 2024
7eecff3
feat: add mobile styling
madkarmaa Oct 12, 2024
0d0b904
feat: add session expired modal
madkarmaa Oct 12, 2024
e7801a2
fix: close sess exp modal on new login
madkarmaa Oct 12, 2024
899e10b
feat: Search
Ushie Oct 15, 2024
0dcff7f
refactor: Minor cleanup
Ushie Oct 29, 2024
5a91cda
feat: Replace 'Sudo Login' with 'Admin Login' and remove icon
Ushie Oct 29, 2024
8239d20
feat: update api to v4
madkarmaa Nov 6, 2024
e261a7a
refactor: move ApiAnnouncementCreate to types file
madkarmaa Nov 6, 2024
95ad504
fix: minor code fixes
madkarmaa Nov 7, 2024
9fee2bb
feat: update Announcement type to API v4 spec
madkarmaa Nov 10, 2024
66e625a
feat: add Gallery component
madkarmaa Nov 10, 2024
f74e8c4
feat: use NewBadge instead of UnreadDot
madkarmaa Nov 10, 2024
f35fc21
feat: Prefetch announcements & use new /announcements/id endpoint
Ushie Nov 10, 2024
eb2a176
refactor: Change all references of channels to tags
Ushie Nov 10, 2024
2746881
refactor: Simplify prefetch query arguments
Ushie Nov 10, 2024
05e5f43
fix: fix new badge
madkarmaa Nov 12, 2024
be9a474
feat: add gallery to ann page
madkarmaa Nov 12, 2024
1c388b0
refactor: change image preview aspect ratio
madkarmaa Nov 12, 2024
06ff9bf
feat: add fullscreen image transition
madkarmaa Nov 12, 2024
24984e3
feat: move gallery inside announcement container
madkarmaa Nov 12, 2024
7f57e9d
refactor: use store to check for valid login
madkarmaa Nov 12, 2024
3f2baed
refactor: remove unused css class
madkarmaa Nov 12, 2024
5c26ef1
feat: add editing and deleting announcements
madkarmaa Nov 13, 2024
1e106b5
feat: add unsaved changes check
madkarmaa Nov 13, 2024
4575b8a
feat: add warning before deleting announcement
madkarmaa Nov 13, 2024
8338ee0
refactor: update texts and coloring of warning modal
madkarmaa Nov 13, 2024
40feecc
refactor: remove dot from red coloring
madkarmaa Nov 13, 2024
4f26388
refactor: remove red color
madkarmaa Nov 14, 2024
decb416
refactor: minor tweaks
madkarmaa Nov 14, 2024
b347934
fix: fix json parsing errors when there's no content in response
madkarmaa Nov 14, 2024
a80bb7e
refactor: switch buttons position
madkarmaa Nov 14, 2024
80e358f
feat: add more props to Input
madkarmaa Nov 14, 2024
6a3a3ca
feat: add wrong credentials message
madkarmaa Nov 14, 2024
4404d8c
feat: Show tags in announcement cards
Ushie Nov 18, 2024
6d1c024
feat: Improve NEW header
Ushie Nov 18, 2024
043f231
fix: Don't show 2nd swiggly line if there's no attachments
Ushie Nov 18, 2024
6620950
fix: Attachment border radius on unread announcements
Ushie Nov 23, 2024
44e9fd3
feat: Add create announcement button
Ushie Nov 23, 2024
52d5631
fix: Hide tags section in AnnouncementCard when there's no tags
Ushie Dec 1, 2024
64802d2
fix: Cleanup tags handling and don't show TagsHost if there's no tags
Ushie Dec 1, 2024
fc2ac3d
feat: Add editing and creating announcements and major cleanup
Ushie Dec 1, 2024
da5fc60
feat: Managing attachments
Ushie Dec 2, 2024
3356b87
refactor: Split page into components and decrease repetition
Ushie Dec 3, 2024
9900c14
feat: Support modifying createdAt date
Ushie Dec 3, 2024
72a164b
fix: Ensure correct default date input value when editing announcements
Ushie Dec 3, 2024
e4d653e
refactor: Minor cleanup
Ushie Dec 3, 2024
53c5edc
fix: Save all changes on submit
Ushie Dec 3, 2024
d161d54
feat: Managing tags
Ushie Dec 3, 2024
a71c943
feat: Managing archived status
Ushie Dec 4, 2024
1f20239
refactor: Reduce repetition
Ushie Dec 4, 2024
01c356a
Merge branch 'dev' into pr/madkarmaa/257
Ushie Dec 4, 2024
3b1b025
fix: Don't show cancel edit button on creation
Ushie Dec 4, 2024
d9c7a4a
fix: Disable prerendering announcements to fix building
Ushie Dec 5, 2024
ab1a6e4
Merge branch 'dev' into feat/announcements
oSumAtrIX Dec 10, 2024
8c312e2
optimize
oSumAtrIX Dec 10, 2024
e73958d
feat: add read announcements store + typing fixes
madkarmaa Dec 10, 2024
8b069ff
refactor: add newline
madkarmaa Dec 10, 2024
cc04d37
fix: add more types
madkarmaa Dec 10, 2024
44b6de9
fix: Trying to write to readable and minor cleanup
Ushie Dec 11, 2024
474ec35
fix: Leave announcement when clicking announcement in the NavBar
Ushie Dec 11, 2024
0ae6f27
feat: Handle nullability and cleanup
Ushie Dec 13, 2024
ce0b2d2
feat: Wrap icon button in Button and cleanup
Ushie Dec 13, 2024
c2115e5
feat: Relative time within 7d and cleanup
Ushie Dec 13, 2024
de96dc6
feat: Don't use red text on session expired dialog
Ushie Dec 13, 2024
160d542
refactor: Reduce repetition
Ushie Dec 13, 2024
f2ac11e
refactor: Element -> Input
Ushie Dec 13, 2024
c02bced
fix: Reset preview state after cancelling and improve reactivitiy
Ushie Dec 14, 2024
735d7d1
feat: Improve admin login in settings design
Ushie Dec 14, 2024
8db7ef4
fix: Use Moment.js for date handling to resolve timezone offsets and …
Ushie Dec 14, 2024
6f9d074
fix: Don't display content in AnnouncementCard if undefined
Ushie Dec 14, 2024
068f7b6
fix: Use goto instead of history
Ushie Dec 14, 2024
4230b28
feat: Prevent announcement submission without a title
Ushie Dec 14, 2024
398b8b3
refactor: Minor cleanup
Ushie Dec 14, 2024
2462f6d
fix: Unable to create attachments
Ushie Dec 14, 2024
e514fb1
refactor: Use correct type
Ushie Dec 14, 2024
16a7e8e
chore: Remove unused CSS
Ushie Dec 14, 2024
6a8e8c0
fix: Improve tag submission handling on Enter key press
Ushie Dec 14, 2024
2715072
feat: Improve validity check
Ushie Dec 14, 2024
9793375
feat: Add attachment validation and improve design
Ushie Dec 15, 2024
e56d56c
fix: Inverted announcement validity check
Ushie Dec 15, 2024
d3179ac
fix: Empty state for new attachments
Ushie Dec 15, 2024
7ee3512
fix: Don't overflow ontop of bin icon
Ushie Dec 15, 2024
cc6c70c
fix: Improve invalid new attachment handling
Ushie Dec 15, 2024
02f7c27
feat: Swap date and content in AnnouncementCard
Ushie Dec 15, 2024
5d371c5
feat: Complete login on Enter key press in password input
Ushie Dec 15, 2024
e079ffa
fix: Reversed validation logic
Ushie Dec 15, 2024
a5e8ffe
feat: Invalidate cache on Announcement create/delete
Ushie Dec 16, 2024
64571cc
fix: Inline icon in Create button to display the correct color
Ushie Dec 16, 2024
58e7f0d
feat: Style AnnouncementCard content
Ushie Dec 16, 2024
e12ccad
feat: Invalidate cache after save and ensure cache is invalidated aft…
Ushie Dec 16, 2024
e51c4c5
refactor: Use correct Utils location
Ushie Dec 16, 2024
4ea2a62
refactor: Remove unused parameter
Ushie Dec 16, 2024
841199d
feat: Relative date in AnnouncementCard
Ushie Dec 16, 2024
2373f85
feat: Improve mobile responsivity
Ushie Dec 16, 2024
63dfe65
feat: Hide archived announcements for non-admin viewers
Ushie Dec 16, 2024
ff2ac40
feat: Distinguish archived announcements
Ushie Dec 16, 2024
ef65adc
refactor: update admin panel message
madkarmaa Dec 17, 2024
4e8ad76
refactor: update admin panel title
madkarmaa Dec 17, 2024
4eeda10
refactor: Reduce repetition
Ushie Dec 19, 2024
c35c51a
fix: Update content after saving
Ushie Dec 19, 2024
570e0c7
feat: Handle nullable content
Ushie Dec 19, 2024
fb6e980
feat: Archived posts section
Ushie Dec 21, 2024
2830e7e
fix: Improve nullability handling
Ushie Dec 21, 2024
467c082
refactor: Improve relativeTime configurability
Ushie Dec 21, 2024
f249af3
Merge branch 'dev' into pr/madkarmaa/257
Ushie Dec 22, 2024
a625d3e
feat: Migrate remaining icons
Ushie Dec 22, 2024
8899f96
feat: Use outline icons
Ushie Dec 22, 2024
f0eeb97
feat: Wrap long titles
Ushie Dec 22, 2024
331264d
Merge branch 'dev' into feat/announcements
Ushie Dec 22, 2024
7d021e1
fix: fix typo
madkarmaa Dec 23, 2024
8e0a6b7
fix: don't cache creds
madkarmaa Dec 23, 2024
c380642
refactor: remove stale time for announcements
madkarmaa Dec 23, 2024
b570f25
feat: show error alert if admin function fails
madkarmaa Dec 24, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
"@tanstack/query-sync-storage-persister": "^4.36.1",
"@tanstack/svelte-query": "^4.36.1",
"datetrigger": "^1.1.1",
"moment": "^2.30.1",
"svelte-material-icons": "^3.0.5"
}
}
1,287 changes: 664 additions & 623 deletions pnpm-lock.yaml

Large diffs are not rendered by default.

15 changes: 13 additions & 2 deletions src/app.scss
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,10 @@ body {
background-color: var(--tertiary);
}

mark {
background-color: var(--secondary);
}

/*-----headings-----*/

h1 {
Expand Down Expand Up @@ -170,14 +174,21 @@ hr {
border-top: 1px solid var(--border);
}

input {
textarea {
resize: vertical;
field-sizing: content;
}

input,
textarea {
padding: 1rem;
border-radius: 12px;
border: 1px solid var(--border);
background-color: transparent;
color: var(--secondary);
}

input:focus {
input:focus,
textarea:focus {
outline: 1px solid var(--primary);
}
156 changes: 143 additions & 13 deletions src/data/api/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,12 @@ import type {
CryptoWallet,
Social,
About,
CompatiblePackage
CompatiblePackage,
ResponseAnnouncement,
Announcement,
Tags
} from '$lib/types';
import { get_access_token, is_logged_in, UnauthenticatedError } from '$lib/auth';

export type ContributorsData = { contributables: Contributable[] };
export type PatchesData = { patches: Patch[]; packages: string[] };
Expand All @@ -20,10 +24,70 @@ 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: ResponseAnnouncement[] };

type GetAnnouncementsOptions = Partial<{
tags: string[];
count: number;
cursor: number;
}>;

export function build_url(endpoint: string) {
// //////v4/contributors -> v4/contributors
endpoint = endpoint.replace(/^\/+/, '');

// v4/contributors -> contributors
if (endpoint.startsWith(settings.API_VERSION)) endpoint = endpoint.split('/').slice(1).join('/');

return `${settings.api_base_url()}/${settings.API_VERSION}/${endpoint}`;
}

function build_headers() {
const access_token_data = get_access_token();
return {
'Content-Type': 'application/json',
Authorization: access_token_data ? `Bearer ${access_token_data.token}` : ''
};
}

async function get_json(endpoint: string) {
const url = `${settings.api_base_url()}/${endpoint}`;
return await fetch(url).then((r) => r.json());
return await fetch(build_url(endpoint)).then((r) => r.json());
}

async function post_json(endpoint: string, body?: any) {
if (!is_logged_in()) throw new UnauthenticatedError();
const headers = build_headers();
return await fetch(build_url(endpoint), {
method: 'POST',
headers,
body: body ? JSON.stringify(body) : ''
}).then((r) => {
return r.headers.get('content-length') === '0' ? null : r.json();
});
}

async function patch_json(endpoint: string, body?: any) {
if (!is_logged_in()) throw new UnauthenticatedError();
const headers = build_headers();
return await fetch(build_url(endpoint), {
method: 'PATCH',
headers,
body: body ? JSON.stringify(body) : ''
}).then((r) => {
return r.headers.get('content-length') === '0' ? null : r.json();
});
}

async function delete_json(endpoint: string, body?: any) {
if (!is_logged_in()) throw new UnauthenticatedError();
const headers = build_headers();
return await fetch(build_url(endpoint), {
method: 'DELETE',
headers,
body: body ? JSON.stringify(body) : ''
}).then((r) => {
return r.headers.get('content-length') === '0' ? null : r.json();
});
}

async function contributors(): Promise<ContributorsData> {
Expand Down Expand Up @@ -74,31 +138,97 @@ async function about(): Promise<AboutData> {
return { about: json };
}

async function announcements(options: GetAnnouncementsOptions = {}): Promise<AnnouncementsData> {
const url = new URL(build_url('announcements'));

if (options.tags && options.tags.length > 0) url.searchParams.set('tags', options.tags.join(','));
if (options.count) url.searchParams.set('count', String(options.count));
if (options.cursor) url.searchParams.set('cursor', String(options.cursor));

const announcements = (await get_json('announcements')) as ResponseAnnouncement[];

return { announcements };
}

async function get_announcement_by_id(id: number): Promise<{ announcement: ResponseAnnouncement }> {
return { announcement: (await get_json(`announcements/${id}`)) as ResponseAnnouncement };
}

async function announcementTags(): Promise<{ tags: Tags }> {
return { tags: (await get_json(`announcements/tags`)) as Tags };
}

function show_error_alert(res: Response) {
alert(`A ${res.status < 500 ? 'user' : 'server'} error occurred. Please try again.`);
}

export async function create_announcement(announcement: Announcement) {
await post_json('announcements', announcement).catch(show_error_alert);
}

export async function update_announcement(id: number, announcement: Announcement) {
await patch_json(`announcements/${id}`, announcement).catch(show_error_alert);
}

export async function delete_announcement(id: number) {
await delete_json(`announcements/${id}`).catch(show_error_alert);
}

export async function archive_announcement(id: number) {
await post_json(`announcements/${id}/archive`).catch(show_error_alert);
}

export async function unarchive_announcement(id: number) {
await post_json(`announcements/${id}/unarchive`).catch(show_error_alert);
}

export const admin = {
create_announcement,
update_announcement,
delete_announcement,
archive_announcement,
unarchive_announcement
};

export const staleTime = 5 * 60 * 1000;
export const queries = {
manager: {
manager: () => ({
queryKey: ['manager'],
queryFn: manager,
staleTime
},
patches: {
}),
patches: () => ({
queryKey: ['patches'],
queryFn: patches,
staleTime
},
contributors: {
}),
contributors: () => ({
queryKey: ['contributors'],
queryFn: contributors,
staleTime
},
team: {
}),
team: () => ({
queryKey: ['team'],
queryFn: team,
staleTime
},
about: {
}),
about: () => ({
queryKey: ['info'],
queryFn: about,
staleTime
}
}),
announcements: () => ({
queryKey: ['announcements'],
queryFn: () => announcements(),
staleTime
}),
announcementById: (id: number) => ({
queryKey: ['announcementById', id],
queryFn: () => get_announcement_by_id(id)
}),
announcementTags: () => ({
queryKey: ['announcementTags'],
queryFn: () => announcementTags(),
staleTime
})
};
11 changes: 5 additions & 6 deletions src/data/api/settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ export const default_api_url = RV_API_URL;

const URL_KEY = 'revanced_api_url';

export const API_VERSION = 'v4';

// Get base URL
export function api_base_url(): string {
if (browser) {
Expand All @@ -14,11 +16,8 @@ export function api_base_url(): string {
return default_api_url;
}

// (re)set base URL.
// (Re)set base URL.
export function set_api_base_url(url?: string) {
if (!url) {
localStorage.removeItem(URL_KEY);
} else {
localStorage.setItem(URL_KEY, url);
}
if (!url) localStorage.removeItem(URL_KEY);
else localStorage.setItem(URL_KEY, url);
}
21 changes: 3 additions & 18 deletions src/layout/Footer/FooterHost.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@

import Query from '$lib/components/Query.svelte';
import FooterSection from './FooterSection.svelte';

import Divider from '$lib/components/Divider.svelte';
import { RV_DMCA_GUID } from '$env/static/public';
import { onMount } from 'svelte';

const aboutQuery = createQuery(['about'], queries.about);
const aboutQuery = createQuery(queries.about());

let location: string;

Expand All @@ -22,22 +22,7 @@
</script>

<!-- squiggly divider line -->
<svg
aria-hidden="true"
width="100%"
height="8"
fill="none"
xmlns="http://www.w3.org/2000/svg"
in:fly={{ y: 10, easing: quintOut, duration: 750 }}
>
<pattern id="a" width="91" height="8" patternUnits="userSpaceOnUse">
<path
d="M114 4c-5.067 4.667-10.133 4.667-15.2 0S88.667-.667 83.6 4 73.467 8.667 68.4 4 58.267-.667 53.2 4 43.067 8.667 38 4 27.867-.667 22.8 4 12.667 8.667 7.6 4-2.533-.667-7.6 4s-10.133 4.667-15.2 0S-32.933-.667-38 4s-10.133 4.667-15.2 0-10.133-4.667-15.2 0-10.133 4.667-15.2 0-10.133-4.667-15.2 0-10.133 4.667-15.2 0-10.133-4.667-15.2 0-10.133 4.667-15.2 0-10.133-4.667-15.2 0-10.133 4.667-15.2 0-10.133-4.667-15.2 0-10.133 4.667-15.2 0-10.133-4.667-15.2 0-10.133 4.667-15.2 0-10.133-4.667-15.2 0-10.133 4.667-15.2 0-10.133-4.667-15.2 0-10.133 4.667-15.2 0-10.133-4.667-15.2 0-10.133 4.667-15.2 0-10.133-4.667-15.2 0-10.133 4.667-15.2 0-10.133-4.667-15.2 0-10.133 4.667-15.2 0-10.133-4.667-15.2 0-10.133 4.667-15.2 0"
stroke-linecap="square"
/>
</pattern>
<rect width="100%" height="100%" fill="url(#a)" />
</svg>
<Divider />
<footer in:fly={{ y: 10, easing: quintOut, duration: 750 }}>
<div class="footer-top">
<section class="main-content">
Expand Down
2 changes: 1 addition & 1 deletion src/layout/Hero/SocialHost.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import { createQuery } from '@tanstack/svelte-query';
import Query from '$lib/components/Query.svelte';

const aboutQuery = createQuery(['about'], queries.about);
const aboutQuery = createQuery(queries.about());
</script>

<div class="social-host">
Expand Down
Loading
Loading