본문으로 건너뛰기

예제

인사이트 화면

날짜 범위 필터를 권한과 조회 상태를 명시하는 인사이트 화면에 연결합니다.

공개 계약NxInsightFilterBarNxInsightSurface

실행 미리 보기

실시간
2026년 8월 15일 오전 12:30 기준
완료된 작업 지시: 148

복사 가능한 소스

코드 예시
TSX
import { useState } from "react";

import {
    NxInsightFilterBar,
    NxInsightSurface,
} from "@nexia/sdk/host";

type RangePreset = "7d" | "30d" | "90d" | "qtd" | "ytd" | "custom";

export function InsightSurfacesExample() {
    const [range, setRange] = useState<RangePreset>("30d");
    const [dates, setDates] = useState({
        from: "2026-07-17",
        through: "2026-08-15",
    });
    const filter = {
        range,
        ...dates,
        isCustom: range === "custom",
        setRange,
        setCustomRange: (from: string, through: string) => {
            setRange("custom");
            setDates({ from, through });
        },
        reset: () => setRange("30d"),
    };

    return (
        <div className="min-h-80 overflow-hidden rounded-control border border-border-subtle">
            <NxInsightSurface
                appKey="production"
                title="Production insight"
                subtitle="Review throughput for the selected range."
                context={{
                    isLoading: false,
                    isError: false,
                    legalEntityPublicId: "le_demo",
                }}
                canRead
                query={{ isLoading: false, isError: false }}
                asOf="2026-08-15T09:30:00+09:00"
                filter={
                    <NxInsightFilterBar
                        filter={filter}
                        presets={["7d", "30d", "90d", "custom"]}
                    />
                }
                stats={
                    <div className="rounded-control border border-border-subtle p-5">
                        Completed work orders: 148
                    </div>
                }
            />
        </div>
    );
}