CRITICAL FIXES: - Fix noAsyncPromiseExecutor in xcoba.ts and xcoba2.ts * Removed async promise executor pattern * Refactored to proper promise chain with .then()/.catch() * Added proper error handling for unhandled rejections - Fix useIterableCallbackReturn in seed_berita.ts * Replaced forEach with for...of loop to avoid returning values in callbacks MEDIUM FIXES: - Fix useNodejsImportProtocol (728 files auto-fixed) * Updated Node.js builtin imports to use node: protocol * Files: eslint.config.mjs, vitest.config.ts, zgen/image.ts, and 725+ more - Fix useOptionalChain in xcoba.ts (auto-fixed) * Changed 'resOut && resOut.body' to 'resOut?.body' - Fix noImportantStyles in dark-mode-table.css * Added biome-ignore suppression comments with justification * Required to override Mantine UI library styles - Fix noUselessContinue in find-port.ts (auto-fixed) * Removed unnecessary continue statement - Fix useLiteralKeys (700+ files auto-fixed) * Simplified computed expressions to use literal keys * Example: obj['create'] -> obj.create RESULTS: - Errors reduced: 4,516 → 3,521 (-22%) - Warnings reduced: 3,861 → 2,083 (-46%) - Total issues reduced: 8,991 → 6,115 (-32%) - 735 files auto-fixed by biome lint --fix Remaining issues (~6,115): - Mostly noExplicitAny warnings requiring manual refactoring - Will be addressed in gradual code quality improvements Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
36 lines
806 B
TypeScript
36 lines
806 B
TypeScript
'use client'
|
|
import type React from 'react';
|
|
import LayoutTabs from './_lib/layoutTabs';
|
|
import { usePathname } from 'next/navigation';
|
|
import { Box } from '@mantine/core';
|
|
|
|
function Layout({ children }: { children: React.ReactNode }) {
|
|
const pathname = usePathname();
|
|
|
|
// Contoh path:
|
|
// - /darmasaba/desa/berita/semua → panjang 5 → list
|
|
// - /darmasaba/desa/berita/Pemerintahan → panjang 5 → list
|
|
// - /darmasaba/desa/berita/Pemerintahan/123 → panjang 6 → detail
|
|
|
|
const segments = pathname.split('/').filter(Boolean);
|
|
const isDetailPage = segments.length >= 5;
|
|
|
|
if (isDetailPage) {
|
|
// Tampilkan tanpa tab menu
|
|
return (
|
|
<Box>
|
|
{children}
|
|
</Box>
|
|
);
|
|
}
|
|
|
|
|
|
return (
|
|
<LayoutTabs>
|
|
{children}
|
|
</LayoutTabs>
|
|
);
|
|
}
|
|
|
|
export default Layout;
|