Skip to content

Commit 43dc32a

Browse files
committed
ui fixes and pwa shortcut integration
1 parent fb3e48b commit 43dc32a

4 files changed

Lines changed: 28 additions & 1 deletion

File tree

frontend/components/PrivateMessages/PrivateMessagesSimplified.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ interface PrivateMessagesSimplifiedProps {
6565
isExpanded?: boolean;
6666
onGroupSelect?: (group: any) => void;
6767
unreadGroupCounts?: { [chatId: string]: number };
68+
forceOpenNewMessage?: boolean;
6869
}
6970

7071
interface GroupChat {
@@ -86,6 +87,7 @@ const PrivateMessagesSimplified: React.FC<PrivateMessagesSimplifiedProps> = ({
8687
isExpanded = false,
8788
onGroupSelect,
8889
unreadGroupCounts = {},
90+
forceOpenNewMessage = false,
8991
}) => {
9092
const { t } = useLanguage();
9193
const { socket, connected } = useSocket();
@@ -334,7 +336,6 @@ const PrivateMessagesSimplified: React.FC<PrivateMessagesSimplifiedProps> = ({
334336
}
335337
}, [contextMenu, groupChatContextMenu, userContextMenu, messageContextMenu]);
336338

337-
// If expanded message is provided, use it
338339
useEffect(() => {
339340
if (expandedMessage) {
340341
setSelectedConversation(expandedMessage.userId);
@@ -344,6 +345,13 @@ const PrivateMessagesSimplified: React.FC<PrivateMessagesSimplifiedProps> = ({
344345
}
345346
}, [expandedMessage?.userId, expandedMessage?.username]);
346347

348+
// Handle force open new message from PWA shortcut
349+
useEffect(() => {
350+
if (forceOpenNewMessage) {
351+
setShowUserSelect(true);
352+
}
353+
}, [forceOpenNewMessage]);
354+
347355
useEffect(() => {
348356
if (user) {
349357
// Reset loading state when user changes

frontend/pages/index.tsx

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ export default function Home() {
126126
const sidebarRef = useRef<HTMLDivElement>(null);
127127
const [showNotificationDialog, setShowNotificationDialog] = useState(false);
128128
const [mobileView, setMobileView] = useState<'sidebar' | 'content'>('sidebar');
129+
const [forceOpenNewMessage, setForceOpenNewMessage] = useState(false);
129130

130131

131132
// Listen for tour events
@@ -377,6 +378,23 @@ export default function Home() {
377378
return;
378379
}
379380

381+
// Handle PWA Shortcuts
382+
if (router.query.action === 'new-topic') {
383+
router.replace('/', undefined, { shallow: true });
384+
setShowCreateTopic(true);
385+
setMobileView('sidebar');
386+
return;
387+
}
388+
389+
if (router.query.action === 'messages') {
390+
router.replace('/', undefined, { shallow: true });
391+
setActiveSidebarTab('messages');
392+
setMobileView('sidebar');
393+
// Set a flag to trigger open new message in PrivateMessagesSimplified
394+
setForceOpenNewMessage(true);
395+
return;
396+
}
397+
380398
if (router.query.topicId) {
381399
const topicId = router.query.topicId as string;
382400
router.replace('/', undefined, { shallow: true });
@@ -787,6 +805,7 @@ export default function Home() {
787805
{activeSidebarTab === 'messages' && (
788806
<div className="h-full">
789807
<PrivateMessagesSimplified
808+
forceOpenNewMessage={forceOpenNewMessage}
790809
onExpandMessage={(userId, username) => {
791810
setExpandedPrivateMessage({ userId, username });
792811
setExpandedChatRoom(null);
35.5 KB
Loading
144 KB
Loading

0 commit comments

Comments
 (0)