ST-1241: Verwijder frontend todo-UI (page, component, navbar en marketing page) (#133)
* feat(cleanup): verwijder Todo's navlink en todo-referenties uit marketing page [cmotto5ia000nx3178lq6xk8d] - nav-bar.tsx: Todo's navLink verwijderd; Ideas-link blijft staan - app/page.tsx: /todos quick-access link, feature-entry en /api/todos API-doc verwijderd Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(cleanup): verwijder app/(app)/todos/ en components/todos/ [cmottjvzo000cx3172472cu4g] --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
11937d8a8d
commit
628fbd7e7b
5 changed files with 0 additions and 765 deletions
|
|
@ -1,19 +0,0 @@
|
|||
export default function Loading() {
|
||||
return (
|
||||
<div className="p-6 max-w-2xl mx-auto w-full animate-pulse">
|
||||
<div className="h-6 w-20 bg-border rounded mb-6" />
|
||||
<div className="flex gap-3 mb-4">
|
||||
<div className="h-8 w-32 bg-border/50 rounded-lg" />
|
||||
<div className="flex-1" />
|
||||
<div className="h-8 w-8 bg-border/50 rounded-lg" />
|
||||
</div>
|
||||
<div className="rounded-xl border border-border overflow-hidden">
|
||||
<div className="h-10 bg-border/30" />
|
||||
{[1, 2, 3, 4, 5].map(i => (
|
||||
<div key={i} className="h-12 border-t border-border bg-border/20" />
|
||||
))}
|
||||
</div>
|
||||
<div className="mt-4 h-24 bg-border/30 rounded-xl" />
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
import { cookies } from 'next/headers'
|
||||
import { getIronSession } from 'iron-session'
|
||||
import { SessionData, sessionOptions } from '@/lib/session'
|
||||
import { prisma } from '@/lib/prisma'
|
||||
import { productAccessFilter } from '@/lib/product-access'
|
||||
import { TodoList } from '@/components/todos/todo-list'
|
||||
|
||||
export default async function TodosPage() {
|
||||
const session = await getIronSession<SessionData>(await cookies(), sessionOptions)
|
||||
|
||||
const todos = await prisma.todo.findMany({
|
||||
where: { user_id: session.userId, archived: false },
|
||||
orderBy: { created_at: 'asc' },
|
||||
include: { product: { select: { name: true } } },
|
||||
})
|
||||
|
||||
const products = await prisma.product.findMany({
|
||||
where: { ...productAccessFilter(session.userId), archived: false },
|
||||
orderBy: { name: 'asc' },
|
||||
include: {
|
||||
pbis: { orderBy: [{ priority: 'asc' }, { sort_order: 'asc' }], select: { id: true, title: true } },
|
||||
},
|
||||
})
|
||||
|
||||
return (
|
||||
<div className="p-6 max-w-2xl mx-auto w-full">
|
||||
<h1 className="text-xl font-medium text-foreground mb-6">Todo's</h1>
|
||||
<TodoList
|
||||
todos={todos.map(t => ({
|
||||
id: t.id,
|
||||
title: t.title,
|
||||
description: t.description ?? null,
|
||||
done: t.done,
|
||||
created_at: t.created_at.toISOString(),
|
||||
product_id: t.product_id ?? null,
|
||||
product_name: t.product?.name ?? null,
|
||||
}))}
|
||||
products={products.map(p => ({
|
||||
id: p.id,
|
||||
name: p.name,
|
||||
pbis: p.pbis,
|
||||
}))}
|
||||
isDemo={session.isDemo ?? false}
|
||||
/>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
11
app/page.tsx
11
app/page.tsx
|
|
@ -45,12 +45,6 @@ export default async function LandingPage() {
|
|||
>
|
||||
Solo
|
||||
</Link>
|
||||
<Link
|
||||
href="/todos"
|
||||
className="px-3 py-1.5 rounded-md text-sm text-muted-foreground hover:text-foreground hover:bg-surface-container transition-colors"
|
||||
>
|
||||
Todo's
|
||||
</Link>
|
||||
<Link
|
||||
href="/settings"
|
||||
className="px-3 py-1.5 rounded-md text-sm text-muted-foreground hover:text-foreground hover:bg-surface-container transition-colors"
|
||||
|
|
@ -366,10 +360,6 @@ export default async function LandingPage() {
|
|||
title: 'Async vraagkanaal',
|
||||
desc: 'Loopt een agent vast op een keuze? Hij plaatst een vraag via het bel-icoon. Jij beantwoordt hem wanneer het uitkomt; de agent pakt automatisch de draad weer op. Tijdens een Grill stelt Claude vragen via hetzelfde kanaal — antwoorden komen direct terug in de Idea-timeline.',
|
||||
},
|
||||
{
|
||||
title: "Todo's",
|
||||
desc: 'Lichtgewicht notities los van de sprint-hiërarchie. Filter, sorteer en archiveer via een tabel-weergave — handig voor invallen die nog geen story zijn.',
|
||||
},
|
||||
].map(({ title, desc }) => (
|
||||
<div key={title} className="bg-surface-container-low border border-border rounded-xl p-5 space-y-2">
|
||||
<div className="text-sm font-medium text-primary">{title}</div>
|
||||
|
|
@ -639,7 +629,6 @@ curl -H "Authorization: Bearer $TOKEN" \\
|
|||
{ method: 'PATCH', path: '/api/stories/:id/tasks/reorder', desc: 'Taakvolgorde aanpassen (body: { task_ids: string[] })' },
|
||||
{ method: 'POST', path: '/api/stories/:id/log', desc: 'Activiteit vastleggen: implementatieplan, testresultaat of commit' },
|
||||
{ method: 'PATCH', path: '/api/tasks/:id', desc: 'Taakstatus of implementatieplan bijwerken' },
|
||||
{ method: 'POST', path: '/api/todos', desc: 'Todo aanmaken (body: { title, product_id })' },
|
||||
].map(({ method, path, desc }) => (
|
||||
<div key={path} className="flex items-start gap-3 bg-background border border-border rounded-lg px-4 py-3">
|
||||
<span className={`shrink-0 text-xs font-mono font-semibold px-2 py-0.5 rounded ${
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue