Drop cookie import; click-through notifications; per-app zoom
The cookie import is gone. It worked mechanically - 43 cookies decrypted from Arc and verifiably visible to the page - but Google, Microsoft and Odoo all refused the imported sessions, because each binds a session to the browser that created it. Signing in once inside the app is simpler and actually works, so the whole path is deleted rather than kept as a feature that mostly fails. That takes rusqlite, aes, cbc, pbkdf2, hmac, sha1 and sha2 out of the build with it. Notifications are now raised through mac-notification-sys rather than Tauri's notification plugin, because the plugin cannot report that one was clicked. A click switches to the app that raised it and then runs the page's own click handler - the only thing that knows which message the notification was about. Zoom is per app, on a fixed ladder so Cmd+0 returns to exactly 100%. The shortcuts are menu-bar accelerators rather than a key listener, since the keystroke has to work while a remote page has focus. The hidden-element count is off the nav rows.
This commit is contained in:
+15
-1
@@ -6,7 +6,7 @@ import Nav from "./components/Nav";
|
||||
import Settings from "./components/Settings";
|
||||
import { BTN_PRIMARY } from "./components/ui";
|
||||
import { useAppearance, type Theme } from "./hooks/useAppearance";
|
||||
import type { Config, Group, HiddenEvent, SwitchEvent } from "./types";
|
||||
import type { Config, Group, HiddenEvent, NotificationClick, SwitchEvent } from "./types";
|
||||
|
||||
export default function App() {
|
||||
const [config, setConfig] = useState<Config | null>(null);
|
||||
@@ -89,6 +89,20 @@ export default function App() {
|
||||
setFocusHidden(e.payload);
|
||||
setSettingsOpen(true);
|
||||
}),
|
||||
// A macOS banner was clicked. Switch to the app that raised it, then let
|
||||
// that page's own handler run — it is the only thing that knows which
|
||||
// message the notification was about.
|
||||
listen<NotificationClick>("notification-clicked", async (e) => {
|
||||
await api.focusWindow();
|
||||
setSettingsOpen(false);
|
||||
setActiveId(e.payload.appId);
|
||||
await api.setActive(e.payload.appId);
|
||||
await api.notificationClick(e.payload.appId, e.payload.notificationId);
|
||||
}),
|
||||
// Zoom changed from the menu bar; keep Settings' sliders honest.
|
||||
listen<[string, number]>("zoom-changed", () => {
|
||||
void api.getConfig().then(setConfig);
|
||||
}),
|
||||
];
|
||||
return () => {
|
||||
unlisten.forEach((p) => p.then((f) => f()));
|
||||
|
||||
Reference in New Issue
Block a user