From 0ca804adb7ad3bee96fc3184bc8097ac1d477290 Mon Sep 17 00:00:00 2001
From: Stephen Zhou <38493346+hyoban@users.noreply.github.com>
Date: Wed, 3 Sep 2025 17:21:27 +0800
Subject: [PATCH] feat: add main view block
---
.../context-bar/blocks/ContextBlock.tsx | 18 +++++++++++++++++-
.../components/layouts/AIChatContextBar.tsx | 18 +++++++++++++++++-
.../ai-chat/store/slices/block.slice.ts | 1 +
.../src/modules/ai-chat/store/types.ts | 2 +-
4 files changed, 36 insertions(+), 3 deletions(-)
diff --git a/apps/desktop/layer/renderer/src/modules/ai-chat/components/context-bar/blocks/ContextBlock.tsx b/apps/desktop/layer/renderer/src/modules/ai-chat/components/context-bar/blocks/ContextBlock.tsx
index 8f89522ed..2caf3e947 100644
--- a/apps/desktop/layer/renderer/src/modules/ai-chat/components/context-bar/blocks/ContextBlock.tsx
+++ b/apps/desktop/layer/renderer/src/modules/ai-chat/components/context-bar/blocks/ContextBlock.tsx
@@ -1,6 +1,8 @@
+import { views } from "@follow/constants"
import { clsx, cn } from "@follow/utils/utils"
import type { FC } from "react"
import { memo } from "react"
+import { useTranslation } from "react-i18next"
import { ImageThumbnail } from "~/modules/ai-chat/components/layouts/ImageThumbnail"
import { CircularProgress } from "~/modules/ai-chat/components/ui/UploadProgress"
@@ -13,11 +15,18 @@ import {
import { EntryTitle, FeedTitle } from "./TitleComponents"
+const blockTypeCanNotBeRemoved = new Set(["mainEntry", "mainView"])
+
export const ContextBlock: FC<{ block: AIChatContextBlock }> = memo(({ block }) => {
+ const { t } = useTranslation("common")
const blockActions = useChatBlockActions()
const getBlockIcon = () => {
switch (block.type) {
+ case "mainView": {
+ const viewIcon = views.find((v) => v.view === Number(block.value))?.icon.props.className
+ return viewIcon
+ }
case "mainEntry": {
return "i-mgc-star-cute-fi"
}
@@ -50,6 +59,10 @@ export const ContextBlock: FC<{ block: AIChatContextBlock }> = memo(({ block })
const getDisplayContent = () => {
switch (block.type) {
+ case "mainView": {
+ const viewName = views.find((v) => v.view === Number(block.value))?.name
+ return viewName ? t(viewName) : block.value
+ }
case "mainEntry":
case "referEntry": {
return