Files
pipu-music/apps/web/src/pages/NotFound.tsx
T
mrleo1nidandClaude Opus 5.5 a685b1b7ca
ci / ts / ts (packages + web) (push) Successful in 1m56s
ci / mobile / mobile (Metro-бандл Android) (push) Successful in 1m59s
feat(web): storage admin, search and catalog pages (M2)
- Storage admin: local folders with a folder picker and NFS sources,
  connection test, scan and full scan with live progress, enable,
  disable, delete
- path pattern editor with reorder, examples and a preview table that
  shows which pattern matched and what came from tags; compile errors
  land under the broken pattern
- Library page with counters, scans and unreadable files; search
  reindex for admins
- search box in the top bar: combobox with keyboard navigation, 150 ms
  debounce, cancelled stale requests, "/" and Ctrl+K, layout fix hint
- search page with tabs and paging, artist and album pages, album
  cards and track lists; unavailable tracks are dimmed

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 07:01:52 +03:00

20 lines
738 B
TypeScript

import { ApiError } from '@pipu/core';
import { Link } from '@tanstack/react-router';
import { useTranslation } from 'react-i18next';
import { useErrorText } from '../shared/lib/errors';
import s from './page.module.css';
/** Сущность каталога не найдена (удалена сканом) или не загрузилась. */
export function NotFound({ error }: { error: unknown }) {
const { t } = useTranslation();
const errorText = useErrorText();
const missing = error instanceof ApiError && error.status === 404;
return (
<div className={s.empty} role="alert">
<p>{missing ? t('catalog.not_found') : errorText(error)}</p>
<Link to="/">{t('catalog.back_home')}</Link>
</div>
);
}