Files
kakeibo/frontend/src/features/periods/selected-period.tsx
T
suphicakir 861bfba85a feat(değerlendirme): geçmiş dönemler ve düzeltme için yeniden açma
- Defter, Plan ve Değerlendirme'de dönem seçici (?donem=)
- Kapalı dönem salt okunur; düzeltmedeki dönem düzenlenebilir ve yeniden kapatılır
- Hane sahibi için onaylı "Düzeltme için yeniden aç"
- Geçmiş dönemler listesi, dönem durum rozeti

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-12 23:11:04 +03:00

31 lines
1.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { ReactNode } from 'react'
import { PageError, PageLoading } from '@/components/page'
import { NoPeriodCard } from '@/features/period-wizard/no-period-card'
import { useSelectedPeriod } from '@/lib/period-select'
import { t } from '@/lib/strings'
import type { Period } from '@/types/Period'
/**
* Seçili dönemi (`?donem=` ya da açık dönem) yükler; yükleniyor / hata / bulunamadı /
* dönem yok durumlarını tek yerde gösterir. Dönem varsa `children(dönem, tüm dönemler)`.
*/
export function SelectedPeriod({
empty = <NoPeriodCard />,
children,
}: {
empty?: ReactNode
children: (period: Period, periods: Period[]) => ReactNode
}) {
const sel = useSelectedPeriod()
if (sel.error) return <PageError message={sel.error.message} onRetry={sel.refetch} />
if (sel.isPending) return <PageLoading />
if (sel.period === undefined)
return (
<p role="alert" className="rounded-xl bg-muted p-4 text-muted-foreground">
{t.periods.notFound}
</p>
)
if (sel.period === null) return empty
return children(sel.period, sel.periods)
}