Skip to content

fix(ui): filter panel state, chat/search mobile layout, header & nav polish - #171

Open
noor-lpi wants to merge 4 commits into
mainfrom
fix/ui-filters-chat-nav
Open

noor-lpi wants to merge 4 commits into
mainfrom
fix/ui-filters-chat-nav

Conversation

@noor-lpi

@noor-lpi noor-lpi commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Mostly UI polish across Chat, Search and the header. Easiest to review commit by commit: each commit is one area, and no line is touched by more than one commit.

Filters & search

  • The filter panel's open/closed state and which sections are expanded (Sources, SDGs, Languages, source categories) now persist when switching between Chat and Search. It's in-memory in the Pinia filters store and resets on reload. On narrow screens the panel starts collapsed.
  • New panel header: the title and chevron are a real button (keyboard accessible). The status line under it ("3 selected · Clear all" / "No filters selected") stays visible when the panel is collapsed.
  • On phones the selected-filter pills are hidden while the panel is collapsed, and the status line acts as the summary. The pill "x" is now a labelled button.
  • Mobile Search: the filter panel sits above the results (new filtersFirst prop on ColumnTemplate).
  • Search box: clearing is now a standard ⓧ (Bulma delete) in the corner of the text box, away from the search button.

Chat

  • "Clear chat" moved into a small toolbar above the messages, where it used to overlap them. It now asks for confirmation with the existing ModalComponent.
  • The scroll-to-bottom arrow is a real <button> with an aria-label, pinned to the bottom of the chat, with the same style at every width.
  • Mobile bubbles: the avatar stays beside the text and the copy button wraps underneath. Markdown lists are indented. Text is left-aligned instead of justified.
  • The error message is translated (EN/FR) instead of hard-coded English.
  • The mobile "Go to sources" link only appears once an answer has sources, and it scrolls reliably.

Header, nav & footer

  • One breakpoint, 1330px, measured: the full logo plus the labelled nav needs about 1,280px in French. Above it, the full logo and nav labels. Below it, the symbol-only logo (logo-symbol.png, cut from logo.png), an icon-only nav with the labels as tooltips, and no extra top space. The logo stays level with the icons.
  • TooltipComponent gets an isBelow option, used by the nav. Screen readers still read each label once.
  • Nav icons are normalised to one size, and the Micro-learning icon is fixed. On phones, the logo, 6 icons and the language selector fit at iPhone SE width, and the language menu opens to the left.
  • Removed the script that hid the header on scroll by editing the DOM directly.
  • Footer: the email shows as "Contact" (still a mailto: link, with the address on hover), so it fits on one line on phones in French.

Layout & misc

  • Uses dvh units so the app fits the visible screen on phones and the nav no longer scrolls away.
  • The Likert scale (1-5 user self-evaluation survey) fits phone width, with the legends at the edges.
  • The tutor status modal is narrower and centred.
  • The Terms page has a readable width (48rem) and a tidier title.

Test plan

  • Unit tests pass at every commit (snapshots updated for the chat/filters markup)
  • Chat and Search at desktop and phone widths, in EN and FR
  • Filters: collapse a section, switch Chat ↔ Search, and the state is kept
  • Clear chat shows the confirmation; Cancel keeps the conversation
  • Resize across 1330px: the logo and nav switch together with no flicker; hover the icons to see the tooltips
  • Footer on one line on a phone in FR

Known issue (pre-existing, not fixed here)

  • ColumnTemplate.vue calls handleDisplayArrow on scroll, but this function doesn't exist in the component. This bug is already on main. The fix is to use the existing useGoTo composable, but that also adds a "go to top" arrow --> TO DO in a separate PR.

🤖 Co-generated with Claude Code

Noor A and others added 4 commits October 8, 2026 10:55
- panel open state, expanded sections and source categories live in the filters store so they survive Chat <-> Search switches
- header: title/chevron as a button, status line with count + clear all always visible; pills hidden on phones when collapsed
- filters panel above results on mobile Search (ColumnTemplate filtersFirst prop)
- clear-search as a Bulma delete in the text box corner

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nslated error

- clear chat moved to a toolbar above the messages and confirmed via ModalComponent
- scroll-to-bottom is a sticky, labelled button with one style at all widths
- mobile bubbles keep the avatar beside the text; markdown lists indented; left-aligned text
- error message translated; mobile 'go to sources' only when sources exist

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…footer contact

- at 1330px the logo switches to logo-symbol.png, nav labels become tooltips and the nav top space goes, together
- TooltipComponent gets an isBelow option, used by the nav
- nav icons normalised, phone row fits iPhone SE, language menu opens leftwards
- remove the scroll script that hid the header via direct DOM edits
- footer shows 'Contact' (mailto) so it fits one line on phones in FR

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- dvh so the app fits the visible screen on phones
- Likert scale fits phone width with legends at the edges
- narrower, centred tutor status modal
- terms page readable width and title wording

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@noor-lpi
noor-lpi force-pushed the fix/ui-filters-chat-nav branch from d669358 to 9a4260f Compare October 8, 2026 08:57
@noor-lpi noor-lpi self-assigned this Oct 8, 2026
<a
href="mailto:welearn@learningplanetinstitute.org"
title="welearn@learningplanetinstitute.org"
>{{ $t('contact') }}</a

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

se changement est deja fait sur main

@sandragjacinto sandragjacinto left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

avec l'arrivée du login il y a un nouveau boutton dans la nav. en mode téléphone on ne le voit plus, est-ce que tu penses que tu peux faire le fix dans cette PR ? merci !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants