mirror of
https://github.com/eliasstepanik/strudel-docker.git
synced 2026-01-27 05:28:41 +00:00
delete browse page for now
This commit is contained in:
parent
204c964050
commit
5314c83534
@ -1,56 +0,0 @@
|
|||||||
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
||||||
import type { Tables } from '../../database.types';
|
|
||||||
import { getMetadata } from '../metadata_parser';
|
|
||||||
import { loadFeaturedPatterns, loadPublicPatterns } from '../repl/util.mjs';
|
|
||||||
|
|
||||||
export function PatternLabel({ pattern }: { pattern: Tables<'code'> }) {
|
|
||||||
const meta = useMemo(() => getMetadata(pattern.code), [pattern]);
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
{pattern.id}. {meta.title || pattern.hash} by {meta.by.join(',') || 'Anonymous'}
|
|
||||||
</>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
export const usePublicPatterns = () => {
|
|
||||||
const [publicPatterns, setPublicPatterns] = useState<Tables<'code'>[] | null>([]);
|
|
||||||
const [featuredPatterns, setFeaturedPatterns] = useState<Tables<'code'>[] | null>([]);
|
|
||||||
const init = useCallback(async () => {
|
|
||||||
const { data: _publicPatterns } = await loadPublicPatterns();
|
|
||||||
const { data: _featuredPatterns } = await loadFeaturedPatterns();
|
|
||||||
setPublicPatterns(_publicPatterns);
|
|
||||||
setFeaturedPatterns(_featuredPatterns);
|
|
||||||
}, []);
|
|
||||||
useEffect(() => {
|
|
||||||
init();
|
|
||||||
}, [useCallback]);
|
|
||||||
return { publicPatterns, featuredPatterns };
|
|
||||||
};
|
|
||||||
|
|
||||||
export function SharedPatterns() {
|
|
||||||
const { publicPatterns, featuredPatterns } = usePublicPatterns();
|
|
||||||
return (
|
|
||||||
<div>
|
|
||||||
<h2 className="">Featured</h2>
|
|
||||||
<section>
|
|
||||||
{featuredPatterns?.map((pattern, i) => (
|
|
||||||
<div key={i}>
|
|
||||||
<a href={`/?${pattern.hash}`} target="_blank">
|
|
||||||
<PatternLabel pattern={pattern} />
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
))}
|
|
||||||
</section>
|
|
||||||
<h2>Last Creations</h2>
|
|
||||||
<section>
|
|
||||||
{publicPatterns?.map((pattern, i) => (
|
|
||||||
<div key={i}>
|
|
||||||
<a href={`/?${pattern.hash}`} target="_blank">
|
|
||||||
<PatternLabel pattern={pattern} />
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
))}
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
---
|
|
||||||
import HeadCommon from '../components/HeadCommon.astro';
|
|
||||||
import { SharedPatterns } from '../components/SharedPatterns';
|
|
||||||
---
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<HeadCommon />
|
|
||||||
</head>
|
|
||||||
<body class="bg-slate-800">
|
|
||||||
<div class="prose dark:prose-invert max-w-full pb-8 p-4">
|
|
||||||
<h1>Browse</h1>
|
|
||||||
<SharedPatterns client:only />
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
@ -16,8 +16,8 @@ import {
|
|||||||
useSettings,
|
useSettings,
|
||||||
} from '../../settings.mjs';
|
} from '../../settings.mjs';
|
||||||
import * as tunes from '../tunes.mjs';
|
import * as tunes from '../tunes.mjs';
|
||||||
import { PatternLabel } from '../../components/SharedPatterns';
|
|
||||||
import { useStore } from '@nanostores/react';
|
import { useStore } from '@nanostores/react';
|
||||||
|
import { getMetadata } from '../../metadata_parser';
|
||||||
|
|
||||||
function classNames(...classes) {
|
function classNames(...classes) {
|
||||||
return classes.filter(Boolean).join(' ');
|
return classes.filter(Boolean).join(' ');
|
||||||
@ -167,3 +167,12 @@ export function PatternsTab({ context }) {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function PatternLabel({ pattern } /* : { pattern: Tables<'code'> } */) {
|
||||||
|
const meta = useMemo(() => getMetadata(pattern.code), [pattern]);
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
{pattern.id}. {meta.title || pattern.hash} by {meta.by.join(',') || 'Anonymous'}
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user