chore: update workspace dependencies and chat behavior
- Adjust package metadata and lockfiles across the workspace - Refine chat sidebar and auto-scroll behavior in the UI - Update PWA install handling alongside runtime package changes
This commit is contained in:
@@ -39,7 +39,7 @@
|
||||
"@fontsource/ibm-plex-sans": "^5.1.1",
|
||||
"@ibm/plex": "^6.4.1",
|
||||
"@lezer/highlight": "^1.2.3",
|
||||
"@opencode-ai/sdk": "^1.3.13",
|
||||
"@opencode-ai/sdk": "^1.3.17",
|
||||
"@pierre/diffs": "1.1.0-beta.13",
|
||||
"@radix-ui/react-collapsible": "^1.1.12",
|
||||
"@radix-ui/react-dialog": "^1.1.15",
|
||||
|
||||
@@ -584,6 +584,7 @@ export const ChatContainer: React.FC = () => {
|
||||
const handleSessionReselected = (event: Event) => {
|
||||
const customEvent = event as CustomEvent<string>;
|
||||
if (customEvent.detail !== currentSessionId) return;
|
||||
if (isPinned || !isOverflowing || isProgrammaticFollowActive) return;
|
||||
resumeToBottomInstant();
|
||||
};
|
||||
|
||||
@@ -591,7 +592,7 @@ export const ChatContainer: React.FC = () => {
|
||||
return () => {
|
||||
window.removeEventListener(SESSION_RESELECTED_EVENT, handleSessionReselected as EventListener);
|
||||
};
|
||||
}, [currentSessionId, resumeToBottomInstant]);
|
||||
}, [currentSessionId, isOverflowing, isPinned, isProgrammaticFollowActive, resumeToBottomInstant]);
|
||||
|
||||
React.useLayoutEffect(() => {
|
||||
const container = scrollRef.current;
|
||||
|
||||
@@ -2,6 +2,7 @@ import React from 'react';
|
||||
import { toast } from '@/components/ui';
|
||||
import { isWebRuntime } from '@/lib/desktop';
|
||||
import { usePwaDetection } from '@/hooks/usePwaDetection';
|
||||
import { getSafeSessionStorage } from '@/stores/utils/safeStorage';
|
||||
|
||||
type InstallPromptOutcome = 'accepted' | 'dismissed';
|
||||
|
||||
@@ -10,6 +11,8 @@ type BeforeInstallPromptEvent = Event & {
|
||||
userChoice: Promise<{ outcome: InstallPromptOutcome }>;
|
||||
};
|
||||
|
||||
const INSTALL_TOAST_SESSION_KEY = 'pwa-install-toast-shown';
|
||||
|
||||
export const usePwaInstallPrompt = () => {
|
||||
const { browserTab } = usePwaDetection();
|
||||
|
||||
@@ -54,10 +57,17 @@ export const usePwaInstallPrompt = () => {
|
||||
installEvent.preventDefault();
|
||||
deferredPrompt = installEvent;
|
||||
|
||||
const sessionStorage = getSafeSessionStorage();
|
||||
if (sessionStorage.getItem(INSTALL_TOAST_SESSION_KEY) === 'true') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (installToastId !== null) {
|
||||
return;
|
||||
}
|
||||
|
||||
sessionStorage.setItem(INSTALL_TOAST_SESSION_KEY, 'true');
|
||||
|
||||
installToastId = toast.info('Install OpenChamber for quicker access', {
|
||||
duration: Infinity,
|
||||
action: {
|
||||
|
||||
@@ -243,7 +243,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@openchamber/ui": "workspace:*",
|
||||
"@opencode-ai/sdk": "^1.3.13",
|
||||
"@opencode-ai/sdk": "^1.3.17",
|
||||
"adm-zip": "^0.5.16",
|
||||
"jsonc-parser": "^3.3.1",
|
||||
"react": "^19.1.1",
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"@fontsource/ibm-plex-sans": "^5.1.1",
|
||||
"@ibm/plex": "^6.4.1",
|
||||
"@octokit/rest": "^22.0.1",
|
||||
"@opencode-ai/sdk": "^1.3.13",
|
||||
"@opencode-ai/sdk": "^1.3.17",
|
||||
"@radix-ui/react-collapsible": "^1.1.12",
|
||||
"@radix-ui/react-dialog": "^1.1.15",
|
||||
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
||||
|
||||
Reference in New Issue
Block a user