feat(mobile): improve image viewer and install entry
Docker Image / Build and Push Docker Image (push) Successful in 2m5s
Docker Image / Build and Push Docker Image (push) Successful in 2m5s
(cherry picked from commit 556bfd2919)
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
"use client";
|
||||
|
||||
import { useEffect, useMemo, type CSSProperties } from "react";
|
||||
import { useEffect, useMemo, useRef, type CSSProperties } from "react";
|
||||
import Image from "next/image";
|
||||
import { useRouter, useSearchParams } from "next/navigation";
|
||||
|
||||
@@ -70,6 +70,8 @@ export function ChatScreen() {
|
||||
const chatDispatch = useChatDispatch();
|
||||
const authState = useAuthState();
|
||||
const authDispatch = useAuthDispatch();
|
||||
const imageOpenedFromChatRef = useRef(false);
|
||||
const imageViewerClosingRef = useRef(false);
|
||||
useSplashLatestMessageSync({
|
||||
characterId: state.characterId,
|
||||
historyLoaded: state.historyLoaded,
|
||||
@@ -127,6 +129,13 @@ export function ChatScreen() {
|
||||
loginStatus: authState.loginStatus,
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
if (!imageMessageId) {
|
||||
imageOpenedFromChatRef.current = false;
|
||||
imageViewerClosingRef.current = false;
|
||||
}
|
||||
}, [imageMessageId]);
|
||||
|
||||
useEffect(() => {
|
||||
if (
|
||||
!imageMessageId ||
|
||||
@@ -218,6 +227,7 @@ export function ChatScreen() {
|
||||
}
|
||||
|
||||
function handleOpenImage(displayMessageId: string): void {
|
||||
imageOpenedFromChatRef.current = true;
|
||||
router.push(
|
||||
buildChatImageOverlayUrl(displayMessageId, characterRoutes.chat),
|
||||
{ scroll: false },
|
||||
@@ -225,6 +235,13 @@ export function ChatScreen() {
|
||||
}
|
||||
|
||||
function handleCloseImageViewer(): void {
|
||||
if (imageViewerClosingRef.current) return;
|
||||
imageViewerClosingRef.current = true;
|
||||
if (imageOpenedFromChatRef.current) {
|
||||
imageOpenedFromChatRef.current = false;
|
||||
router.back();
|
||||
return;
|
||||
}
|
||||
router.replace(
|
||||
buildChatWithoutImageOverlayUrl(searchParams, characterRoutes.chat),
|
||||
{ scroll: false },
|
||||
|
||||
Reference in New Issue
Block a user