Sparkline.tsx 699 B

12345678910111213141516171819202122232425
  1. 'use client';
  2. import './sparkline.scss';
  3. import dynamic from 'next/dynamic';
  4. import type { MoveDir } from '@/types/worldIndex';
  5. // recharts(d3) 지연 로드(ssr:false) — 스파크라인 청크를 초기 번들에서 분리. 데이터 2개 미만이면 빈 placeholder.
  6. const SparklineInner = dynamic(() => import('./SparklineInner'), {
  7. ssr: false,
  8. loading: () => <div className='spark spark--empty' aria-hidden='true' />
  9. });
  10. type Props = {
  11. data: number[];
  12. dir: MoveDir;
  13. };
  14. export default function Sparkline({ data, dir }: Props)
  15. {
  16. if (!data || data.length < 2) {
  17. return <div className='spark spark--empty' aria-hidden='true' />;
  18. }
  19. return <SparklineInner data={data} dir={dir} />;
  20. }