This commit is contained in:
Chris Kruining 2025-04-14 23:50:40 +02:00
parent 350c767a13
commit 44fa60a04f
Signed by: chris
SSH key fingerprint: SHA256:nG82MUfuVdRVyCKKWqhY+pCrbz9nbX6uzUns4RKa1Pg
4 changed files with 77 additions and 24 deletions

View file

@ -1,32 +1,71 @@
import type { Category, Entry } from './types';
import type { Category, Entry } from "./types";
import { query } from "@solidjs/router";
import { entries } from './data';
import { entries } from "./data";
export const listCategories = query(async (): Promise<Category[]> => {
"use server";
return [
{
label: 'Popular',
entries: [entries.get(1)!, entries.get(2)!, entries.get(3)!, entries.get(4)!, entries.get(1)!, entries.get(2)!, entries.get(3)!, entries.get(4)!],
label: "Popular",
entries: [
entries.get("1")!,
entries.get("2")!,
entries.get("3")!,
entries.get("4")!,
entries.get("1")!,
entries.get("2")!,
entries.get("3")!,
entries.get("4")!,
],
},
{
label: 'Drama',
entries: [entries.get(5)!, entries.get(6)!, entries.get(7)!, entries.get(8)!, entries.get(1)!, entries.get(2)!, entries.get(3)!, entries.get(4)!],
label: "Drama",
entries: [
entries.get("5")!,
entries.get("6")!,
entries.get("7")!,
entries.get("8")!,
entries.get("1")!,
entries.get("2")!,
entries.get("3")!,
entries.get("4")!,
],
},
{
label: 'Now streaming',
entries: [entries.get(1)!, entries.get(2)!, entries.get(3)!, entries.get(4)!, entries.get(1)!, entries.get(2)!, entries.get(3)!, entries.get(4)!],
label: "Now streaming",
entries: [
entries.get("1")!,
entries.get("2")!,
entries.get("3")!,
entries.get("4")!,
entries.get("1")!,
entries.get("2")!,
entries.get("3")!,
entries.get("4")!,
],
},
{
label: 'Sci-Fi & Fantasy',
entries: [entries.get(9)!, entries.get(11)!, entries.get(12)!, entries.get(13)!, entries.get(1)!, entries.get(2)!, entries.get(3)!, entries.get(4)!],
label: "Sci-Fi & Fantasy",
entries: [
entries.get("9")!,
entries.get("11")!,
entries.get("12")!,
entries.get("13")!,
entries.get("1")!,
entries.get("2")!,
entries.get("3")!,
entries.get("4")!,
],
},
];
}, 'series.categories.list');
}, "series.categories.list");
export const getEntry = query(async (id: Entry['id']): Promise<Entry | undefined> => {
export const getEntry = query(
async (id: Entry["id"]): Promise<Entry | undefined> => {
"use server";
return entries.get(id);
}, "series.get");
},
"series.get",
);

View file

@ -45,6 +45,7 @@ export const Top: Component<TopProps> = (props) => {
</button>
<div class={css.accountMenu} id="account-menu-popover" popover>
<Profile user={user()} />
<a href="/settings">Settings</a>
<form method="post" onSubmit={logout}>
<button type="submit">Log out</button>
</form>

View file

@ -1,20 +1,30 @@
import { Title } from '@solidjs/meta';
import { createAsync } from '@solidjs/router';
import { Overview } from '~/features/overview';
import { listCategories, getEntry } from '~/features/content';
import { Show } from 'solid-js';
import { Title } from "@solidjs/meta";
import { createAsync, query } from "@solidjs/router";
import { Overview } from "~/features/overview";
import { listCategories, getEntry } from "~/features/content";
import { createEffect, Show } from "solid-js";
const load = query(async () => {
"use server";
// const response =
}, "home.data");
export const route = {
load: () => ({
highlight: getEntry(14),
categories: listCategories(),
preload: async () => ({
highlight: await getEntry("14"),
categories: await listCategories(),
}),
};
export default function Home() {
const highlight = createAsync(() => getEntry(14));
const highlight = createAsync(() => getEntry("14"));
const categories = createAsync(() => listCategories());
createEffect(() => {
console.log(highlight(), categories());
});
return (
<>
<Title>Home</Title>

View file

@ -0,0 +1,3 @@
export default function Settings() {
return <>SETTINGS PAGE</>;
}