diff --git a/apps/landing/src/app/test-case/page.tsx b/apps/landing/src/app/test-case/page.tsx
index 672f48d..94c50d5 100644
--- a/apps/landing/src/app/test-case/page.tsx
+++ b/apps/landing/src/app/test-case/page.tsx
@@ -20,6 +20,7 @@ import { TestCaseFilterContainer } from '@/components/test-case/TestCaseFilterCo
import { TestCaseProvider } from '@/components/test-case/TestCaseProvider'
import { TestCaseRuleContainer } from '@/components/test-case/TestCaseRuleContainer'
import { TestCaseStat } from '@/components/test-case/TestCaseStat'
+import { TestCaseTotalBoundary } from '@/components/test-case/TestCaseTotalBoundary'
import { TestCaseTypeToggle } from '@/components/test-case/TestCaseTypeToggle'
import { createFilterMap, TEST_CASE_FILTERS } from '@/constants'
import { TestStatusMap } from '@/types'
@@ -217,44 +218,68 @@ export default async function TestCasePage() {
실패한 케이스만 표시하기
-
-
-
-
-
+
+
+
- 목차 펼치기
-
-
-
-
+
+
+ 목차 펼치기
+
+
+
+
+
-
+
- {cases}
+ {cases}
+
+
+
+ 등록된 테스트가 없습니다.
+
+
+
- {/* mobile bottom sheet */}
-
-
-
-
+
+ {/* mobile bottom sheet */}
+
+
+
+
+
+ 접기
+
+
+
+
- 접기
+ 한글 목차
-
-
-
-
- 한글 목차
-
-
+ 클릭 시 해당 항으로 이동합니다.
+
+
+
- 클릭 시 해당 항으로 이동합니다.
-
-
-
- {Object.entries(ruleMap).map(([key, value]) => {
- const isBut = value.title.includes('다만')
- if (isBut) return null
- return (
- {
+ const isBut = value.title.includes('다만')
+ if (isBut) return null
+ return (
+
+
+
+
+
+
+ {value.title.replace(/[^\d~]/g, '')}
+
+
+
+
+
+
+ )
+ })}
+
+
+ {/* desktop side sheet */}
+
+
+
+
+
-
-
+ 접기
+
+
+
+
+
+ 한글 목차
+
+
+ 클릭 시 해당 항으로 이동합니다.
+
+
+
+ {Object.entries(ruleMap).map(([key, value]) => {
+ const isBut = value.title.includes('다만')
+ if (isBut) return null
+ return (
+
+
-
+
-
- )
- })}
-
-
- {/* desktop side sheet */}
-
-
-
-
-
- 접기
-
-
-
-
-
- 한글 목차
-
-
- 클릭 시 해당 항으로 이동합니다.
-
-
-
- {Object.entries(ruleMap).map(([key, value]) => {
- const isBut = value.title.includes('다만')
- if (isBut) return null
- return (
-
-
-
-
-
- {value.title.replace(/[^\d~]/g, '')}
-
-
-
-
-
- )
- })}
-
-
+ )
+ })}
+
+
+
)
diff --git a/apps/landing/src/components/test-case/TestCaseTotalBoundary.tsx b/apps/landing/src/components/test-case/TestCaseTotalBoundary.tsx
new file mode 100644
index 0000000..d31e940
--- /dev/null
+++ b/apps/landing/src/components/test-case/TestCaseTotalBoundary.tsx
@@ -0,0 +1,17 @@
+'use client'
+
+import { useTestCase } from './TestCaseProvider'
+
+export function TestCaseTotalBoundary({
+ reverse = false,
+ children,
+}: {
+ reverse?: boolean
+ children: React.ReactNode
+}) {
+ const { filterMap, options } = useTestCase()
+ const selected = options.filters[0]
+ const length = filterMap[selected].length
+ if (reverse) return length ? null : children
+ return length ? children : null
+}