deerflow2/frontend/src/components/workspace
Ben Ghorbel Mohamed Aziz e349c41945 feat(web): add conversation export as Markdown and JSON (#1002)
* feat(web): add conversation export as Markdown and JSON (#976)

Add the ability to export conversations in Markdown and JSON formats,
accessible from both the chat header and the sidebar context menu.

- Add export utility (formatThreadAsMarkdown, formatThreadAsJSON) with
  support for user/assistant messages, thinking blocks, and tool calls
- Add ExportTrigger component in chat header (appears when messages exist)
- Add Export submenu to sidebar dropdown (fetches full thread state on demand)
- Add i18n translations for en-US and zh-CN

Closes #976

Made-with: Cursor

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update thread creation timestamp to updated_at

---------

Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-23 08:21:54 +08:00
..
agents feat(agent):Supports custom agent and chat experience with refactoring (#957) 2026-03-03 21:32:01 +08:00
artifacts feat: add citation/reference support to deep research reports (#1143) 2026-03-17 09:51:08 +08:00
chats feat(middleware): introduce TodoMiddleware for context-loss detection in todo management (#1041) 2026-03-10 11:24:53 +08:00
citations feat: add citation/reference support to deep research reports (#1143) 2026-03-17 09:51:08 +08:00
messages feat: add citation/reference support to deep research reports (#1143) 2026-03-17 09:51:08 +08:00
settings fix(i18n): normalize locale and prevent undefined translations (#914) 2026-02-27 08:10:38 +08:00
agent-welcome.tsx feat(agent):Supports custom agent and chat experience with refactoring (#957) 2026-03-03 21:32:01 +08:00
code-editor.tsx fix: fix eslint errors and warnings 2026-01-31 21:46:31 +08:00
copy-button.tsx feat: implement i18n 2026-01-20 14:06:47 +08:00
export-trigger.tsx feat(web): add conversation export as Markdown and JSON (#1002) 2026-03-23 08:21:54 +08:00
flip-display.tsx feat: re-implement message group 2026-01-18 19:56:07 +08:00
github-icon.tsx feat: implement basic web app 2026-01-15 23:40:21 +08:00
input-box.tsx fix: improve MiniMax code plan integration (#1169) 2026-03-20 17:18:59 +08:00
mode-hover-guide.tsx feat(citations): inline citation links with [citation:Title](URL) 2026-02-09 21:40:20 +08:00
overscroll.tsx feat: implement basic web app 2026-01-15 23:40:21 +08:00
recent-chat-list.tsx feat(web): add conversation export as Markdown and JSON (#1002) 2026-03-23 08:21:54 +08:00
streaming-indicator.tsx feat: implement basic web app 2026-01-15 23:40:21 +08:00
thread-title.tsx Enhance chat UI and compatible anthropic thinking messages (#1018) 2026-03-08 20:19:31 +08:00
todo-list.tsx feat(agent):Supports custom agent and chat experience with refactoring (#957) 2026-03-03 21:32:01 +08:00
tooltip.tsx feat: adjust layout and style of tooltip 2026-01-16 19:51:14 +08:00
welcome.tsx feat: make the title golden in Ultra mode 2026-02-09 08:59:40 +08:00
workspace-container.tsx feat: implement i18n 2026-01-20 14:06:47 +08:00
workspace-header.tsx feat: update workspace header to conditionally render title based on environment variable 2026-02-09 09:20:32 +08:00
workspace-nav-chat-list.tsx feat(agent):Supports custom agent and chat experience with refactoring (#957) 2026-03-03 21:32:01 +08:00
workspace-nav-menu.tsx feat: enhance workspace navigation menu with conditional rendering and mounted state 2026-02-07 11:10:24 +08:00
workspace-sidebar.tsx fix: hide chats when sidebar is not open 2026-01-27 10:41:08 +08:00