Compare commits
No commits in common. "6839c1c36921c1621e43d342f9adb7110a6f077d" and "9583d0da16ab4e289c5ac4cb4e01bca82429340e" have entirely different histories.
6839c1c369
...
9583d0da16
|
@ -1,9 +1,6 @@
|
||||||
"use server"
|
"use server"
|
||||||
import prisma from "./db"
|
import prisma from "./db"
|
||||||
export async function getStories() {
|
export async function getStories() {
|
||||||
return prisma.story.findMany()
|
|
||||||
}
|
|
||||||
export async function getStoriesWithGenres() {
|
|
||||||
return prisma.story.findMany(
|
return prisma.story.findMany(
|
||||||
{
|
{
|
||||||
include: {
|
include: {
|
||||||
|
|
|
@ -71,41 +71,39 @@ export function DataTable<TData, TValue>({
|
||||||
console.log(filterBy.id)
|
console.log(filterBy.id)
|
||||||
return (<>
|
return (<>
|
||||||
<div className="flex items-center py-4">
|
<div className="flex items-center py-4">
|
||||||
<div className="">
|
|
||||||
<DropdownMenu>
|
|
||||||
<DropdownMenuTrigger asChild>
|
|
||||||
<Button variant="outline" className="ml-auto">
|
|
||||||
Filter by
|
|
||||||
</Button>
|
|
||||||
</DropdownMenuTrigger>
|
|
||||||
<DropdownMenuContent align="end">
|
|
||||||
<DropdownMenuRadioGroup value={filterBy} onValueChange={setFilterBy} >
|
|
||||||
{table
|
|
||||||
.getAllColumns()
|
|
||||||
.filter((column) => column.getCanFilter())
|
|
||||||
.map((column) => {
|
|
||||||
return (
|
|
||||||
<DropdownMenuRadioItem value={column} className="capitalize" key={column.id}>
|
|
||||||
{column.id}
|
|
||||||
</DropdownMenuRadioItem>
|
|
||||||
)
|
|
||||||
})}
|
|
||||||
</DropdownMenuRadioGroup>
|
|
||||||
</DropdownMenuContent>
|
|
||||||
</DropdownMenu>
|
|
||||||
<Input
|
|
||||||
placeholder={`${filterBy.id}`}
|
|
||||||
value={(table.getColumn(filterBy.id)?.getFilterValue() as string) ?? ""}
|
|
||||||
onChange={(event) =>
|
|
||||||
table.getColumn(filterBy.id)?.setFilterValue(event.target.value)
|
|
||||||
}
|
|
||||||
className="max-w-sm"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<DropdownMenu>
|
<DropdownMenu>
|
||||||
<DropdownMenuTrigger asChild>
|
<DropdownMenuTrigger asChild>
|
||||||
<Button variant="outline" className="ml-auto">
|
<Button variant="outline" className="ml-auto">
|
||||||
Show/hide
|
Filter by
|
||||||
|
</Button>
|
||||||
|
</DropdownMenuTrigger>
|
||||||
|
<DropdownMenuContent align="end">
|
||||||
|
<DropdownMenuRadioGroup value={filterBy} onValueChange={setFilterBy} >
|
||||||
|
{table
|
||||||
|
.getAllColumns()
|
||||||
|
.filter((column) => column.getCanFilter())
|
||||||
|
.map((column) => {
|
||||||
|
return (
|
||||||
|
<DropdownMenuRadioItem value={column} className="capitalize" key={column.id}>
|
||||||
|
{column.id}
|
||||||
|
</DropdownMenuRadioItem>
|
||||||
|
)
|
||||||
|
})}
|
||||||
|
</DropdownMenuRadioGroup>
|
||||||
|
</DropdownMenuContent>
|
||||||
|
</DropdownMenu>
|
||||||
|
<Input
|
||||||
|
placeholder={`${filterBy.id}`}
|
||||||
|
value={(table.getColumn(filterBy.id)?.getFilterValue() as string) ?? ""}
|
||||||
|
onChange={(event) =>
|
||||||
|
table.getColumn(filterBy.id)?.setFilterValue(event.target.value)
|
||||||
|
}
|
||||||
|
className="max-w-sm"
|
||||||
|
/>
|
||||||
|
<DropdownMenu>
|
||||||
|
<DropdownMenuTrigger asChild>
|
||||||
|
<Button variant="outline" className="ml-auto">
|
||||||
|
Columns
|
||||||
</Button>
|
</Button>
|
||||||
</DropdownMenuTrigger>
|
</DropdownMenuTrigger>
|
||||||
<DropdownMenuContent align="end">
|
<DropdownMenuContent align="end">
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
import { Story } from "@prisma/client";
|
import { Story } from "@prisma/client";
|
||||||
import { DataTable } from "./data-table";
|
import { DataTable } from "./data-table";
|
||||||
import { columns } from "./columns";
|
import { columns } from "./columns";
|
||||||
import { getStoriesWithGenres } from "app/lib/get";
|
import { getStories } from "app/lib/get";
|
||||||
import { Genre } from "@prisma/client";
|
const stories: Story[] = await getStories()
|
||||||
const stories: Array<Story & { genres: Array<Genre> }> = await getStoriesWithGenres()
|
|
||||||
export default async function Page() {
|
export default async function Page() {
|
||||||
return (
|
return (
|
||||||
<div className="container mx-auto py-10">
|
<div className="container mx-auto py-10">
|
||||||
|
|
Loading…
Reference in New Issue