필터링 적용하기
'use client'
import { Status } from '@prisma/client'
import { Select } from '@radix-ui/themes'
import { useRouter } from 'next/navigation'
import React from 'react'
const statuses:{label:string,value?:Status}[]= [
{label:'All'},
{label:'open',value:'OPEN'},
{label:'IN_PROGRESS',value:'IN_PROGRESS'},
{label:'CLOSED',value:'CLOSED'},
]
interface IProps{
values : string
}
const StatusFilter = ({values}:IProps) => {
const router = useRouter()
return (
<Select.Root
defaultValue={values}
onValueChange={(value)=>{
const query = value ? `?value=${value}` : ""
router.push(`/issues` + query)
}}>
<Select.Trigger placeholder='필터기능'/>
<Select.Content>
{statuses.map((v,i)=><Select.Item key={i} value={v.value || "All"}>{v.label}</Select.Item>)}
<Select.Separator />
</Select.Content>
</Select.Root>
)
}
export default StatusFilter
Chart 구현
npm i recharts
import { Bar, BarChart, ResponsiveContainer, XAxis, YAxis } from 'recharts';
const Chart = ({open,inProgress,closed}:props) => {
let data =
[ {label:'OPEN',value:open},
{label:'IN_PROGRESS',value:inProgress},
{label:'CLOSED',value:closed}]
return (
<ResponsiveContainer width={'100%'} height={300}>
<BarChart data={data} >
<XAxis dataKey="label"></XAxis>
<YAxis></YAxis>
<Bar dataKey="value"></Bar>
</BarChart>
</ResponsiveContainer>
)
}
'프로그래밍 > NextJS' 카테고리의 다른 글
typeorm 메서드 총정리 (0) | 2024.03.28 |
---|---|
nextjs 넥스트 메타데이터 추가하기 (0) | 2024.01.22 |
nextauth 넥스트어스 사용하기 (0) | 2024.01.22 |
next Radix 설치 및 사용 (1) | 2024.01.22 |
nextjs prisma 넥스트 프리즈마 세팅 (0) | 2024.01.22 |