Files
paseo/packages/app/src/file-explorer/visibility.ts
T
eb94b70848 feat: hide dotfiles in file explorer (#1516)
* feat: hide dotfiles in file explorer

* refactor: rename to "hidden files" and read flag from store

Rename the explorer dotfile toggle to show-semantics "hidden files"
so copy and code share one cross-platform vocabulary, and stop
prop-drilling the flag now that it lives in the panel store.

- explorerShowHiddenFiles (default true) replaces explorerHideDotFiles;
  i18n keys + translations switched from "dotfiles" to "hidden files"
- imperative helpers read usePanelStore.getState() instead of taking
  the flag as a parameter; flag stays threaded only through the
  reactive tree-row render path
- drop dead usePanelState exposure; collapse migration double-guard

* fix: address Greptile review on hidden-file path matching

- isHiddenExplorerPath no longer treats ".." segments as hidden
  (only "." was exempt before); add tests for ".." and "../sibling"
- assert the showHiddenFiles i18n key alongside hideHiddenFiles

---------

Co-authored-by: Mohamed Boudra <boudra.moha@gmail.com>
2026-06-15 12:28:17 +08:00

18 lines
484 B
TypeScript

import type { ExplorerEntry } from "@/stores/session-store";
export function isHiddenExplorerPath(path: string): boolean {
return path
.split("/")
.some((segment) => segment !== "." && segment !== ".." && segment.startsWith("."));
}
export function filterVisibleExplorerEntries(
entries: ExplorerEntry[],
showHiddenFiles: boolean,
): ExplorerEntry[] {
if (showHiddenFiles) {
return entries;
}
return entries.filter((entry) => !entry.name.startsWith("."));
}