fix(sidebar): add project sort modes (#2067)

* fix(sidebar): add project sort modes

* fix(sidebar): preserve manual sort order

* fix(sidebar): move sort state before render

---------

Co-authored-by: bashrusakh <bashrusakh@users.noreply.github.com>
This commit is contained in:
Leonid
2026-07-11 14:43:57 +03:00
committed by GitHub
co-authored by bashrusakh
parent f6326e1c35
commit bfaf62e222
16 changed files with 256 additions and 18 deletions
+6
View File
@@ -382,6 +382,7 @@ export const dict = {
'sessions.sidebar.header.actions.searchSessions': 'Search sessions',
'sessions.sidebar.header.actions.exitSelection': 'Exit selection',
'sessions.sidebar.header.actions.selectSessions': 'Select sessions',
'sessions.sidebar.header.actions.sortProjects': 'Sort projects',
'sessions.sidebar.header.actions.sessionDisplayMode': 'Session display mode',
'sessions.sidebar.header.displayMode.label': 'Display mode',
'sessions.sidebar.header.displayMode.default': 'Default',
@@ -390,6 +391,11 @@ export const dict = {
'sessions.sidebar.header.displayMode.showArchived': 'Show archived sessions',
'sessions.sidebar.header.displayMode.collapseAll': 'Collapse all',
'sessions.sidebar.header.displayMode.expandAll': 'Expand all',
'sessions.sidebar.header.projectSort.manual': 'Manual',
'sessions.sidebar.header.projectSort.aToZ': 'A → Z',
'sessions.sidebar.header.projectSort.zToA': 'Z → A',
'sessions.sidebar.header.projectSort.dateAdded': 'Newest',
'sessions.sidebar.header.projectSort.recent': 'Recent',
'sessions.sidebar.header.search.matchCountSingle': '{count} match',
'sessions.sidebar.header.search.matchCountPlural': '{count} matches',
'sessions.sidebar.header.search.escapeHint': 'Esc to clear',
+6
View File
@@ -383,6 +383,7 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.header.actions.searchSessions": "Buscar sesiones",
"sessions.sidebar.header.actions.exitSelection": "Salir de selección",
"sessions.sidebar.header.actions.selectSessions": "Seleccionar sesiones",
"sessions.sidebar.header.actions.sortProjects": "Ordenar proyectos",
"sessions.sidebar.header.actions.sessionDisplayMode": "Modo de visualización de sesión",
"sessions.sidebar.header.displayMode.label": "Modo de visualización",
"sessions.sidebar.header.displayMode.default": "Predeterminado",
@@ -391,6 +392,11 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.header.displayMode.showArchived": "Mostrar sesiones archivadas",
"sessions.sidebar.header.displayMode.collapseAll": "Colapsar todo",
"sessions.sidebar.header.displayMode.expandAll": "Expandir todo",
"sessions.sidebar.header.projectSort.manual": "Manual",
"sessions.sidebar.header.projectSort.aToZ": "A → Z",
"sessions.sidebar.header.projectSort.zToA": "Z → A",
"sessions.sidebar.header.projectSort.dateAdded": "Más recientes",
"sessions.sidebar.header.projectSort.recent": "Recientes",
"sessions.sidebar.header.search.matchCountSingle": "{count} coincidencia",
"sessions.sidebar.header.search.matchCountPlural": "{count} coincidencias",
"sessions.sidebar.header.search.escapeHint": "Esc para limpiar",
+6
View File
@@ -227,6 +227,7 @@ export const dict = {
'sessions.sidebar.header.actions.searchSessions': 'Sessions de recherche',
'sessions.sidebar.header.actions.exitSelection': 'Quitter la sélection',
'sessions.sidebar.header.actions.selectSessions': 'Sélectionnez des sessions',
'sessions.sidebar.header.actions.sortProjects': 'Trier les projets',
'sessions.sidebar.header.actions.sessionDisplayMode': 'Mode d\'affichage des sessions',
'sessions.sidebar.header.displayMode.label': 'Mode d\'affichage',
'sessions.sidebar.header.displayMode.default': 'Défaut',
@@ -234,6 +235,11 @@ export const dict = {
'sessions.sidebar.header.displayMode.showRecent': 'Afficher la section récente',
'sessions.sidebar.header.displayMode.collapseAll': 'Tout réduire',
'sessions.sidebar.header.displayMode.expandAll': 'Tout développer',
'sessions.sidebar.header.projectSort.manual': 'Manuel',
'sessions.sidebar.header.projectSort.aToZ': 'A → Z',
'sessions.sidebar.header.projectSort.zToA': 'Z → A',
'sessions.sidebar.header.projectSort.dateAdded': 'Les plus récentes',
'sessions.sidebar.header.projectSort.recent': 'Récentes',
'sessions.sidebar.header.search.matchCountSingle': 'Correspondance {count}',
'sessions.sidebar.header.search.matchCountPlural': 'Correspondances {count}',
'sessions.sidebar.header.search.escapeHint': 'Echap pour effacer',
+6
View File
@@ -383,6 +383,7 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.header.actions.searchSessions': 'セッションを検索',
'sessions.sidebar.header.actions.exitSelection': '選択を終了',
'sessions.sidebar.header.actions.selectSessions': 'セッションを選択',
'sessions.sidebar.header.actions.sortProjects': 'プロジェクトを並べ替え',
'sessions.sidebar.header.actions.sessionDisplayMode': 'セッション表示モード',
'sessions.sidebar.header.displayMode.label': '表示モード',
'sessions.sidebar.header.displayMode.default': 'デフォルト',
@@ -391,6 +392,11 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.header.displayMode.showArchived': 'アーカイブ済みセッションを表示',
'sessions.sidebar.header.displayMode.collapseAll': 'すべて折りたたむ',
'sessions.sidebar.header.displayMode.expandAll': 'すべて展開',
'sessions.sidebar.header.projectSort.manual': '手動',
'sessions.sidebar.header.projectSort.aToZ': 'A → Z',
'sessions.sidebar.header.projectSort.zToA': 'Z → A',
'sessions.sidebar.header.projectSort.dateAdded': '新しい順',
'sessions.sidebar.header.projectSort.recent': '最近',
'sessions.sidebar.header.search.matchCountSingle': '{count}件一致',
'sessions.sidebar.header.search.matchCountPlural': '{count}件一致',
'sessions.sidebar.header.search.escapeHint': 'Escでクリア',
+6
View File
@@ -383,6 +383,7 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.header.actions.searchSessions': '세션 검색',
'sessions.sidebar.header.actions.exitSelection': '선택 종료',
'sessions.sidebar.header.actions.selectSessions': '세션 선택',
'sessions.sidebar.header.actions.sortProjects': '프로젝트 정렬',
'sessions.sidebar.header.actions.sessionDisplayMode': '세션 표시 모드',
'sessions.sidebar.header.displayMode.label': '표시 모드',
'sessions.sidebar.header.displayMode.default': '기본값',
@@ -391,6 +392,11 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.header.displayMode.showArchived': '보관된 세션 표시',
'sessions.sidebar.header.displayMode.collapseAll': '모두 접기',
'sessions.sidebar.header.displayMode.expandAll': '모두 펼치기',
'sessions.sidebar.header.projectSort.manual': '수동',
'sessions.sidebar.header.projectSort.aToZ': 'A → Z',
'sessions.sidebar.header.projectSort.zToA': 'Z → A',
'sessions.sidebar.header.projectSort.dateAdded': '최신순',
'sessions.sidebar.header.projectSort.recent': '최근',
'sessions.sidebar.header.search.matchCountSingle': '{count}개 일치',
'sessions.sidebar.header.search.matchCountPlural': '{count}개 일치',
'sessions.sidebar.header.search.escapeHint': 'Esc로 지우기',
+6
View File
@@ -205,6 +205,7 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.header.actions.searchSessions': 'Szukaj sesji',
'sessions.sidebar.header.actions.exitSelection': 'Wyjdź z zaznaczenia',
'sessions.sidebar.header.actions.selectSessions': 'Wybierz sesje',
'sessions.sidebar.header.actions.sortProjects': 'Sortuj projekty',
'sessions.sidebar.header.actions.sessionDisplayMode': 'Tryb wyświetlania sesji',
'sessions.sidebar.header.displayMode.label': 'Tryb wyświetlania',
'sessions.sidebar.header.displayMode.default': 'Domyślny',
@@ -213,6 +214,11 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.header.displayMode.showArchived': 'Pokaż zarchiwizowane sesje',
'sessions.sidebar.header.displayMode.collapseAll': 'Zwiń wszystkie',
'sessions.sidebar.header.displayMode.expandAll': 'Rozwiń wszystkie',
'sessions.sidebar.header.projectSort.manual': 'Ręcznie',
'sessions.sidebar.header.projectSort.aToZ': 'A → Z',
'sessions.sidebar.header.projectSort.zToA': 'Z → A',
'sessions.sidebar.header.projectSort.dateAdded': 'Najnowsze',
'sessions.sidebar.header.projectSort.recent': 'Ostatnie',
'sessions.sidebar.header.search.matchCountSingle': '{count} dopasowanie',
'sessions.sidebar.header.search.matchCountPlural': '{count} dopasowań',
'sessions.sidebar.header.search.escapeHint': 'Esc aby wyczyścić',
@@ -383,6 +383,7 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.header.actions.searchSessions": "Pesquisar sessões",
"sessions.sidebar.header.actions.exitSelection": "Sair da seleção",
"sessions.sidebar.header.actions.selectSessions": "Selecionar sessões",
"sessions.sidebar.header.actions.sortProjects": "Ordenar projetos",
"sessions.sidebar.header.actions.sessionDisplayMode": "Modo de visualização da sessão",
"sessions.sidebar.header.displayMode.label": "Modo de visualização",
"sessions.sidebar.header.displayMode.default": "Padrão",
@@ -391,6 +392,11 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.header.displayMode.showArchived": "Mostrar sessões arquivadas",
"sessions.sidebar.header.displayMode.collapseAll": "Recolher tudo",
"sessions.sidebar.header.displayMode.expandAll": "Expandir tudo",
"sessions.sidebar.header.projectSort.manual": "Manual",
"sessions.sidebar.header.projectSort.aToZ": "A → Z",
"sessions.sidebar.header.projectSort.zToA": "Z → A",
"sessions.sidebar.header.projectSort.dateAdded": "Mais recentes",
"sessions.sidebar.header.projectSort.recent": "Recentes",
"sessions.sidebar.header.search.matchCountSingle": "{count} correspondência",
"sessions.sidebar.header.search.matchCountPlural": "{count} correspondências",
"sessions.sidebar.header.search.escapeHint": "Esc para limpar",
+6
View File
@@ -383,6 +383,7 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.header.actions.searchSessions": "Пошук сесій",
"sessions.sidebar.header.actions.exitSelection": "Вийти з вибору",
"sessions.sidebar.header.actions.selectSessions": "Вибрати сесії",
"sessions.sidebar.header.actions.sortProjects": "Сортувати проєкти",
"sessions.sidebar.header.actions.sessionDisplayMode": "Режим відображення сесії",
"sessions.sidebar.header.displayMode.label": "Режим відображення",
"sessions.sidebar.header.displayMode.default": "За замовчуванням",
@@ -391,6 +392,11 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.header.displayMode.showArchived": "Показувати архівовані сесії",
"sessions.sidebar.header.displayMode.collapseAll": "Згорнути все",
"sessions.sidebar.header.displayMode.expandAll": "Розгорнути все",
"sessions.sidebar.header.projectSort.manual": "Вручну",
"sessions.sidebar.header.projectSort.aToZ": "A → Z",
"sessions.sidebar.header.projectSort.zToA": "Z → A",
"sessions.sidebar.header.projectSort.dateAdded": "Найновіші",
"sessions.sidebar.header.projectSort.recent": "Нещодавні",
"sessions.sidebar.header.search.matchCountSingle": "{count} збіг",
"sessions.sidebar.header.search.matchCountPlural": "Збігів: {count}",
"sessions.sidebar.header.search.escapeHint": "Esc, щоб очистити",
@@ -383,6 +383,7 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.header.actions.searchSessions': '搜索会话',
'sessions.sidebar.header.actions.exitSelection': '退出选择',
'sessions.sidebar.header.actions.selectSessions': '选择会话',
'sessions.sidebar.header.actions.sortProjects': '排序项目',
'sessions.sidebar.header.actions.sessionDisplayMode': '会话显示模式',
'sessions.sidebar.header.displayMode.label': '显示模式',
'sessions.sidebar.header.displayMode.default': '默认',
@@ -391,6 +392,11 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.header.displayMode.showArchived': '显示已归档会话',
'sessions.sidebar.header.displayMode.collapseAll': '全部折叠',
'sessions.sidebar.header.displayMode.expandAll': '全部展开',
'sessions.sidebar.header.projectSort.manual': '手动',
'sessions.sidebar.header.projectSort.aToZ': 'A → Z',
'sessions.sidebar.header.projectSort.zToA': 'Z → A',
'sessions.sidebar.header.projectSort.dateAdded': '最新',
'sessions.sidebar.header.projectSort.recent': '最近',
'sessions.sidebar.header.search.matchCountSingle': '{count} 个匹配',
'sessions.sidebar.header.search.matchCountPlural': '{count} 个匹配',
'sessions.sidebar.header.search.escapeHint': '按 Esc 清除',
@@ -396,6 +396,7 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.header.actions.searchSessions': '搜尋會話',
'sessions.sidebar.header.actions.exitSelection': '退出選取',
'sessions.sidebar.header.actions.selectSessions': '選擇會話',
'sessions.sidebar.header.actions.sortProjects': '排序專案',
'sessions.sidebar.header.actions.sessionDisplayMode': '會話顯示模式',
'sessions.sidebar.header.displayMode.label': '顯示模式',
'sessions.sidebar.header.displayMode.default': '預設',
@@ -404,6 +405,11 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.header.displayMode.showArchived': '顯示已封存會話',
'sessions.sidebar.header.displayMode.collapseAll': '全部摺疊',
'sessions.sidebar.header.displayMode.expandAll': '全部展開',
'sessions.sidebar.header.projectSort.manual': '手動',
'sessions.sidebar.header.projectSort.aToZ': 'A → Z',
'sessions.sidebar.header.projectSort.zToA': 'Z → A',
'sessions.sidebar.header.projectSort.dateAdded': '最新',
'sessions.sidebar.header.projectSort.recent': '最近',
'sessions.sidebar.header.search.matchCountSingle': '{count} 個符合',
'sessions.sidebar.header.search.matchCountPlural': '{count} 個符合',
'sessions.sidebar.header.search.escapeHint': '按 Esc 清除',