Skip to content

Commit e655d66

Browse files
committed
fix: update ESLint rules for react-hooks and improve file style resolution logic
1 parent 0bccbcb commit e655d66

20 files changed

Lines changed: 52 additions & 94 deletions

File tree

.github/workflows/publish-ui.yml

Lines changed: 0 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -15,60 +15,8 @@ permissions:
1515
contents: read
1616

1717
jobs:
18-
publish-fss:
19-
runs-on: ubuntu-latest
20-
steps:
21-
- uses: actions/checkout@v6
22-
23-
- uses: pnpm/action-setup@v5
24-
25-
- uses: actions/setup-node@v6
26-
with:
27-
node-version: 24
28-
cache: pnpm
29-
registry-url: https://registry.npmjs.org
30-
env:
31-
NPM_CONFIG_CACHE: ${{ github.workspace }}/.npm-cache
32-
33-
- run: pnpm install --frozen-lockfile
34-
env:
35-
NPM_CONFIG_CACHE: ${{ github.workspace }}/.npm-cache
36-
37-
- name: Check npm version
38-
id: version_check
39-
shell: bash
40-
env:
41-
NPM_CONFIG_CACHE: ${{ github.workspace }}/.npm-cache
42-
run: |
43-
PACKAGE_NAME=$(node -p "require('./packages/fss/package.json').name")
44-
PACKAGE_VERSION=$(node -p "require('./packages/fss/package.json').version")
45-
PUBLISHED_VERSION=$(npm view "$PACKAGE_NAME" version 2>/dev/null || true)
46-
47-
echo "package_name=$PACKAGE_NAME" >> "$GITHUB_OUTPUT"
48-
echo "package_version=$PACKAGE_VERSION" >> "$GITHUB_OUTPUT"
49-
50-
if [ "$PUBLISHED_VERSION" = "$PACKAGE_VERSION" ]; then
51-
echo "should_publish=false" >> "$GITHUB_OUTPUT"
52-
echo "Version $PACKAGE_VERSION is already published for $PACKAGE_NAME."
53-
else
54-
echo "should_publish=true" >> "$GITHUB_OUTPUT"
55-
if [ -n "$PUBLISHED_VERSION" ]; then
56-
echo "Publishing $PACKAGE_NAME@$PACKAGE_VERSION over current npm version $PUBLISHED_VERSION."
57-
else
58-
echo "Publishing first npm release for $PACKAGE_NAME@$PACKAGE_VERSION."
59-
fi
60-
fi
61-
62-
- name: Publish fss package
63-
if: steps.version_check.outputs.should_publish == 'true'
64-
run: pnpm publish --access public --no-git-checks
65-
working-directory: packages/fss
66-
env:
67-
NPM_CONFIG_CACHE: ${{ github.workspace }}/.npm-cache
68-
6918
publish-extension-api:
7019
runs-on: ubuntu-latest
71-
needs: publish-fss
7220
steps:
7321
- uses: actions/checkout@v6
7422

eslint.config.mjs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,23 @@ export default tseslint.config(
4949
},
5050
],
5151
"@typescript-eslint/no-explicit-any": "off",
52-
"react-hooks/exhaustive-deps": "warn",
52+
"react-hooks/exhaustive-deps": ["warn", {
53+
additionalHooks: "(useLatestRef)",
54+
}],
5355
"react-hooks/rules-of-hooks": "error",
5456
},
5557
},
58+
{
59+
files: [
60+
"packages/ui/lib/components/PanelGroup/**",
61+
"packages/ui/lib/features/**",
62+
"packages/ui/lib/dialogs/**",
63+
"packages/ui/lib/hooks/**",
64+
],
65+
rules: {
66+
"react-hooks/exhaustive-deps": "off",
67+
},
68+
},
5669
{
5770
files: ["eslint.config.mjs", "vite.config.ts", "packages/*/vite.config.ts"],
5871
languageOptions: {

packages/file-list/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
},
5454
"dependencies": {
5555
"@dotdirfm/commands": "workspace:*",
56-
"@dotdirfm/fss-lang": "workspace:*",
56+
"@dotdirfm/fss": "workspace:*",
5757
"@dotdirfm/ui-utils": "workspace:*"
5858
},
5959
"packageManager": "pnpm@10.30.3",

packages/file-list/src/FileList/FileInfoFooter.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { FsNode } from "@dotdirfm/fss-lang";
1+
import type { FsNode } from "@dotdirfm/fss";
22
import styles from "./FileList.module.css";
33

44
function formatSize(sizeValue: unknown): string {

packages/file-list/src/FileList/FileList.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { ActionQueue } from "./actionQueue";
2-
import { cx, dirname, join, useMediaQuery } from "@dotdirfm/ui-utils";
31
import { SHELL_EXECUTE, useCommandRegistry, VIEW_FILE } from "@dotdirfm/commands";
4-
import type { FsNode } from "@dotdirfm/fss-lang";
2+
import type { FsNode } from "@dotdirfm/fss";
3+
import { cx, dirname, join, useMediaQuery } from "@dotdirfm/ui-utils";
54
import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
65
import { Breadcrumbs } from "../Breadcrumbs/Breadcrumbs";
6+
import { ActionQueue } from "./actionQueue";
77
import { ColumnsScroller, type ColumnsScrollerProps } from "./ColumnsScroller";
88
import { FileInfoFooter } from "./FileInfoFooter";
99
import styles from "./FileList.module.css";

packages/file-list/src/FileList/fileListActions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import type { ActionQueue } from "./actionQueue";
21
import { EDIT_FILE, SHELL_EXECUTE, useCommandRegistry, VIEW_FILE } from "@dotdirfm/commands";
3-
import type { FsNode } from "@dotdirfm/fss-lang";
2+
import type { FsNode } from "@dotdirfm/fss";
43
import { useMemo, useRef } from "react";
4+
import type { ActionQueue } from "./actionQueue";
55
import type { FileOperationHandlers, LanguageResolver } from "./types";
66

77
type DisplayEntry = {

packages/file-list/src/FileList/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { FsNode } from "@dotdirfm/fss-lang";
1+
import type { FsNode } from "@dotdirfm/fss";
22
import type { ReactNode } from "react";
33

44
export interface ResolvedEntryStyle {

packages/fss/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ npm install fss-lang
3030
## Quick Start
3131

3232
```typescript
33-
import { parseStylesheet, resolveStyle, createFsNode, StateFlags } from '@dotdirfm/fss-lang'
33+
import { parseStylesheet, resolveStyle, createFsNode, StateFlags } from '@dotdirfm/fss'
3434

3535
// Parse an FSS stylesheet
3636
const sheet = parseStylesheet(`
@@ -81,7 +81,7 @@ const style = resolveStyle(sheet, node, 'dark')
8181
For large trees (10k+ nodes), use `CachedResolver` to avoid recomputing styles for nodes with identical signatures:
8282

8383
```typescript
84-
import { CachedResolver, parseStylesheet } from '@dotdirfm/fss-lang'
84+
import { CachedResolver, parseStylesheet } from '@dotdirfm/fss'
8585

8686
const sheet = parseStylesheet(`...`)
8787
const resolver = new CachedResolver(sheet, 'dark')
@@ -98,7 +98,7 @@ resolver.setTheme('light')
9898
Support global config with per-folder overrides (e.g. `.faraday/style.fss`):
9999

100100
```typescript
101-
import { LayeredResolver, createLayer, LayerPriority } from '@dotdirfm/fss-lang'
101+
import { LayeredResolver, createLayer, LayerPriority } from '@dotdirfm/fss'
102102

103103
const resolver = new LayeredResolver()
104104

packages/fss/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "@dotdirfm/fss-lang",
2+
"name": "@dotdirfm/fss",
33
"type": "module",
44
"version": "0.0.6",
55
"description": "File Style Sheets — a CSS-like language for describing how files should be rendered in a tree or panel.",

packages/ui/lib/components/PanelGroup/usePanelCommands.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { OPPOSITE_PANEL } from "@/entities/panel/model/panelSide";
22
import type { PanelSide } from "@/entities/panel/model/types";
33
import { createFilelistTab, createPreviewTab } from "@/entities/tab/model/tabsAtoms";
44
import type { PanelTab } from "@/entities/tab/model/types";
5+
import { useLatestRef } from "@/hooks/useLatestRef";
56
import {
67
CLOSE_TAB,
78
EDIT_IN_OPPOSITE_PANEL,
@@ -12,8 +13,7 @@ import {
1213
OPEN_SELECTED_DIR_IN_OPPOSITE_PANEL_NEW_TAB,
1314
PREVIEW_IN_OPPOSITE_PANEL, useCommandRegistry
1415
} from "@dotdirfm/commands";
15-
import type { FsNode } from "@dotdirfm/fss-lang";
16-
import { useLatestRef } from "@/hooks/useLatestRef";
16+
import type { FsNode } from "@dotdirfm/fss";
1717
import { useEffect, type Dispatch, type RefObject, type SetStateAction } from "react";
1818

1919
interface UsePanelCommandsArgs {

0 commit comments

Comments
 (0)