From 6f3c39098bd7859fb83d910b405182021afd37f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?nicole=20miko=C5=82ajczyk?= Date: Tue, 31 Mar 2026 15:25:37 +0000 Subject: [PATCH 01/13] A .devcontainer configuration, probably overcomplicated but i'm tired of this laready MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: nicole mikołajczyk --- .devcontainer/devcontainer.json | 37 ++++++++++++++++++++++++++++++++ .devcontainer/docker-compose.yml | 10 +++++++++ .gitignore | 1 + .vscode/extensions.json | 2 ++ packages/nicolium/vite.config.ts | 1 + 5 files changed, 51 insertions(+) create mode 100644 .devcontainer/devcontainer.json create mode 100644 .devcontainer/docker-compose.yml diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 000000000..08a5830da --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,37 @@ +{ + "name": "Nicolium", + "dockerComposeFile": "docker-compose.yml", + "service": "app", + "workspaceFolder": "/workspaces/nicolium", + + "features": { + "ghcr.io/devcontainers/features/node:1": { + "version": "20", + "nodeGypDependencies": true + } + }, + + "remoteUser": "vscode", + "updateRemoteUserUID": true, + + "forwardPorts": [7312], + "portsAttributes": { + "7312": { + "label": "Nicolium", + "onAutoForward": "openBrowser" + } + }, + + "postCreateCommand": "bash -lc \"set -euo pipefail; corepack enable; mkdir -p ~/.local/bin; curl -fsSL https://github.com/formatjs/formatjs/releases/download/formatjs_cli_v1.1.0/formatjs_cli-linux-x64 -o ~/.local/bin/formatjs; chmod +x ~/.local/bin/formatjs; pnpm install --ignore-scripts\"", + + "customizations": { + "vscode": { + "extensions": [ + "dbaeumer.vscode-eslint", + "oxc.oxc-vscode", + "stylelint.vscode-stylelint", + "wix.vscode-import-cost" + ] + } + } +} diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml new file mode 100644 index 000000000..8a436c934 --- /dev/null +++ b/.devcontainer/docker-compose.yml @@ -0,0 +1,10 @@ +version: "3.8" + +services: + app: + image: mcr.microsoft.com/devcontainers/base:ubuntu + command: sleep infinity + volumes: + - ..:/workspaces/nicolium:Z + ports: + - "127.0.0.1:7312:7312" diff --git a/.gitignore b/.gitignore index 70f70853a..d3d419b52 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +node_modules /node_modules/ yarn-error.log* coverage/ diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 31aa3bd64..f0a0e412a 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,6 +1,8 @@ { "recommendations": [ "dbaeumer.vscode-eslint", + "ms-vscode-remote.remote-containers", + "oxc.oxc-vscode", "stylelint.vscode-stylelint", "wix.vscode-import-cost" ] diff --git a/packages/nicolium/vite.config.ts b/packages/nicolium/vite.config.ts index 9fee07cef..ae5f9af7b 100644 --- a/packages/nicolium/vite.config.ts +++ b/packages/nicolium/vite.config.ts @@ -28,6 +28,7 @@ const config = defineConfig(() => ({ }, assetsInclude: ['**/*.oga'], server: { + host: '0.0.0.0', port: Number(process.env.PORT ?? 7312), hmr: process.env.HMR_DISABLED === 'true' ? false : undefined, ws: process.env.WS_DISABLED === 'true' ? false : undefined, From e7d480fb1645d2a5b2d43776736ba22473394cb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?nicole=20miko=C5=82ajczyk?= Date: Tue, 31 Mar 2026 21:01:44 +0200 Subject: [PATCH 02/13] wtf it stopped working after switching desktop environments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: nicole mikołajczyk --- .devcontainer/devcontainer.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 08a5830da..21ef50aa9 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -33,5 +33,12 @@ "wix.vscode-import-cost" ] } + }, + + "containerEnv": { + "WAYLAND_DISPLAY": "" + }, + "remoteEnv": { + "WAYLAND_DISPLAY": "" } } From 4e80b06c1b1da4989fbcf2c465560fe4684ae479 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?nicole=20miko=C5=82ajczyk?= Date: Tue, 31 Mar 2026 19:18:48 +0000 Subject: [PATCH 03/13] pl-api: update feature defs for snac MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: nicole mikołajczyk --- packages/pl-api/lib/features.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/pl-api/lib/features.ts b/packages/pl-api/lib/features.ts index 15de99ba4..aa7155a11 100644 --- a/packages/pl-api/lib/features.ts +++ b/packages/pl-api/lib/features.ts @@ -910,6 +910,7 @@ const getFeatures = (instance: Instance) => { v.software === MASTODON, v.software === MITRA, v.software === PLEROMA, + v.software === SNAC && gte(v.version, '2.78.0'), v.software === TOKI, ]), @@ -1398,6 +1399,7 @@ const getFeatures = (instance: Instance) => { v.software === MITRA && gte(v.version, '3.15.0'), v.software === NEODB, v.software === SHARKEY, + v.software === SNAC && gte(v.version, '2.90.0'), v.software === TAKAHE && gte(v.version, '0.8.0'), instance.api_versions['polls.pleroma.pl-api'] >= 1, ]), From 24b6f75875bc29e0e6cc37499df82623c0c9c1a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?nicole=20miko=C5=82ajczyk?= Date: Tue, 31 Mar 2026 19:40:55 +0000 Subject: [PATCH 04/13] nicolium Make sidebar active item state consistent MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: nicole mikołajczyk --- .../src/components/navigation/sidebar-navigation-link.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/nicolium/src/components/navigation/sidebar-navigation-link.tsx b/packages/nicolium/src/components/navigation/sidebar-navigation-link.tsx index 4b3a1d4c8..46f95a7e0 100644 --- a/packages/nicolium/src/components/navigation/sidebar-navigation-link.tsx +++ b/packages/nicolium/src/components/navigation/sidebar-navigation-link.tsx @@ -30,7 +30,7 @@ const SidebarNavigationLink: React.FC = React.memo( const LinkComponent = (to === undefined ? 'button' : Link) as typeof Link; - const isActive = matchRoute({ to }) !== false; + const isActive = matchRoute({ to, ...rest }) !== false; const handleClick: React.EventHandler = (e) => { if (onClick) { @@ -43,7 +43,7 @@ const SidebarNavigationLink: React.FC = React.memo( return (
  • Date: Tue, 31 Mar 2026 21:41:05 +0000 Subject: [PATCH 05/13] devcontainer: Support arch other than linux-x64 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: nicole mikołajczyk --- .devcontainer/devcontainer.json | 2 +- .devcontainer/post-create.sh | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 .devcontainer/post-create.sh diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 21ef50aa9..6691e2948 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -22,7 +22,7 @@ } }, - "postCreateCommand": "bash -lc \"set -euo pipefail; corepack enable; mkdir -p ~/.local/bin; curl -fsSL https://github.com/formatjs/formatjs/releases/download/formatjs_cli_v1.1.0/formatjs_cli-linux-x64 -o ~/.local/bin/formatjs; chmod +x ~/.local/bin/formatjs; pnpm install --ignore-scripts\"", + "postCreateCommand": "bash .devcontainer/post-create.sh", "customizations": { "vscode": { diff --git a/.devcontainer/post-create.sh b/.devcontainer/post-create.sh new file mode 100644 index 000000000..62b7774dc --- /dev/null +++ b/.devcontainer/post-create.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +set -euo pipefail + +corepack enable +mkdir -p ~/.local/bin + +platform="$(uname -s)-$(uname -m)" +formatjs_url="" + +case "$platform" in + Linux-x86_64) + formatjs_url="https://github.com/formatjs/formatjs/releases/download/formatjs_cli_v1.1.0/formatjs_cli-linux-x64" + ;; + Darwin-arm64) + formatjs_url="https://github.com/formatjs/formatjs/releases/download/formatjs_cli_v1.1.0/formatjs_cli-darwin-arm64" + ;; +esac + +if [[ -n "$formatjs_url" ]]; then + curl -fsSL "$formatjs_url" -o ~/.local/bin/formatjs + chmod +x ~/.local/bin/formatjs +fi + +pnpm install --ignore-scripts From 916b6f30c225c853d229301fe7d2d8d102eebc75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?nicole=20miko=C5=82ajczyk?= Date: Tue, 31 Mar 2026 21:51:31 +0000 Subject: [PATCH 06/13] nicolium: fix styles MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: nicole mikołajczyk --- packages/nicolium/src/styles/new/compose.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nicolium/src/styles/new/compose.scss b/packages/nicolium/src/styles/new/compose.scss index 92b88885e..5a9159783 100644 --- a/packages/nicolium/src/styles/new/compose.scss +++ b/packages/nicolium/src/styles/new/compose.scss @@ -53,7 +53,7 @@ padding-right: 0.75rem; padding-bottom: 0.5rem; padding-left: 0.75rem; - border-color: rgb(var(--color-gray-400)); + border: 1px solid rgb(var(--color-gray-400)); border-radius: 0.375rem; outline: 2px solid transparent; From 1209f3bf74cb2dd85907deea7cee28fcfc21e367 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?nicole=20miko=C5=82ajczyk?= Date: Tue, 31 Mar 2026 21:52:42 +0000 Subject: [PATCH 07/13] update gitignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: nicole mikołajczyk --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index d3d419b52..3abc1cbb8 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ node_modules yarn-error.log* coverage/ package-lock.json +.pnpm-store From 82c45fc1b71bd2815ed685335da10471ba796662 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?nicole=20miko=C5=82ajczyk?= Date: Tue, 31 Mar 2026 22:20:47 +0000 Subject: [PATCH 08/13] nicolium: style migrations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: nicole mikołajczyk --- .../compose-event/tabs/edit-event.tsx | 1 + .../components/compose-form-button.tsx | 7 +- .../compose/components/compose-form.tsx | 6 +- .../src/features/compose/editor/index.tsx | 13 +--- packages/nicolium/src/styles/new/compose.scss | 73 ++++++++++++++++--- packages/nicolium/src/styles/new/events.scss | 4 +- 6 files changed, 74 insertions(+), 30 deletions(-) diff --git a/packages/nicolium/src/features/compose-event/tabs/edit-event.tsx b/packages/nicolium/src/features/compose-event/tabs/edit-event.tsx index 81ca828f0..6fc9b6c45 100644 --- a/packages/nicolium/src/features/compose-event/tabs/edit-event.tsx +++ b/packages/nicolium/src/features/compose-event/tabs/edit-event.tsx @@ -309,6 +309,7 @@ const EditEvent: React.FC = ({ statusId }) => { = ({ }) => (
    = ({ const intl = useIntl(); return ( -
    -