Widget: a header menu with New conversation, Download transcript and a privacy link
Les mainteneurs répondent en général sous 1 jour
Évaluation
Cette issue n'a pas encore été évaluée.
Description
F-05 task 19. The panel header has the name, the subtitle and a close button (packages/widget/src/dom/panel.ts:128-160). Visitors have no way to start over or keep a copy of the chat, though the widget can already do the first one: newConversation() exists (packages/widget/src/widget.ts:455), and so does its string, newConversation: 'New conversation' (packages/widget/src/i18n.ts:62), which nothing uses yet.
What to do
- Add a "More options" button (a
⋯icon inpackages/widget/src/dom/icons.ts) before the close button. It opens a small menu with:- New conversation: calls
newConversation(). - Download transcript: saves the visible conversation as a
.txtfile (who said it and the text, one message after another) through aBloband a temporary<a download>. No network request. - Privacy: a link that opens in a new tab. It's only shown when a new
privacyUrlconfig option is set (onlyhttps:andhttp:URLs).
- New conversation: calls
- Use the menu button pattern:
aria-haspopup="menu"andaria-expandedon the button,role="menu"androle="menuitem", arrow keys and Home/End to move, Enter/Space to pick, and Escape closes the menu only, putting focus back on the button. Escape now closes the popup, so the menu has to handle Escape first (the F-05 key table says Escape "closes that layer only"). - New strings in
WidgetLocaleStrings(English defaults; other languages fall back to them): the button label, "Download transcript" and "Privacy". - Use
--cc-surface-raisedfor the menu background, with logical CSS so RTL works.
Size
The panel is at 17.15 of 18 kB. If the menu doesn't fit, it can load on first open the way the pre-chat form does (its own chunk, with a 2 kB budget). Talk to me before raising a budget.
Acceptance criteria
- Unit tests: the menu opens and closes, keyboard navigation works, New conversation resets the log, the transcript file has the right text, and Privacy only shows with
privacyUrlset (and never for ajavascript:URL) - An e2e test for opening the menu with the keyboard and choosing New conversation, with the axe checks passing in light, dark and RTL
-
privacyUrldocumented inwebsite/src/content/docs/widget/configuration.mdxand the widget README (pnpm docs:checkpasses) - A minor changeset for
@chatcops/widget;pnpm test:coverage,pnpm lint,pnpm api(commit the snapshot change) andpnpm sizepass
Comment here to be assigned.
- Langage dominant
- TypeScript
- Étoiles
- 13
- Forks
- 7
- Merge moyen
- 3 h 11 min
- PR mergées (30 j)
- 330
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de codercops/chatcops
-
Ingest: a crawl source for sites without a sitemapPeut-être pris @bhushan4work l’a pris aujourd’hui. Ouverteenhancement
codercops/chatcops#586 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
fix(core): Cohere and Voyage rerankers bypass non-positive limit check on NaN topN and send invalid null payloadPeut-être pris @bhushan4work l’a pris il y a 2 jours. Ouvertebug
codercops/chatcops#582 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
Widget: a code block tagged `c++`, `c#` or `objective-c` shows part of the tag as codePeut-être pris @prakashNalla l’a pris il y a 2 jours. Ouvertebug widget
codercops/chatcops#578 · 2 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
Docs: Astro, Nuxt and SvelteKit guides for the serverPeut-être pris @anurag2787 l’a pris il y a 3 jours. Ouvertedocumentation
codercops/chatcops#575 · 2 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
Server: chatcopsNext(), one catch-all route for Next.jsPeut-être pris @Saifjafri212213 l’a pris il y a 3 jours. Ouverteenhancement server
codercops/chatcops#574 · 2 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de codercops/chatcops
Issues similaires
-
[Text] Add Reading Time & Word Count Estimator for Reflection Notes in src/lib/text/reading-time.tsOuvertearea:core beginner-friendly community contributions-welcome difficulty:easy enhancement good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 1 jour
-
[fullsend] E2E: scorecard — filecheck GitLab entity metrics unavailable due to initialDelay timingOuvertee2e-failure ready-to-code
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
redhat-developer/rhdh-plugin-export-overlays#4698 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
devswha/herdr-web-ui#2884 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
b:minor bug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
software-mansion/argent#1771 ·
Les mainteneurs répondent en général sous 1 jour