feat: add mobile project editor with worktree reorder and delete
Replace the up/down arrows in the mobile project reorder list (drag already covers reordering) with an edit button that opens a dedicated project editor surface: rename, pick icon and color, and discover a favicon (no upload). The editor lists the project's worktrees with drag-to-reorder (persisted per project, like project order) and a delete button that opens a mobile confirmation built on the shared worktree primitives — archiving attached sessions and optionally removing the local/remote branch.
This commit is contained in:
@@ -57,7 +57,8 @@ export const dict = {
|
||||
'mobile.sessions.newChat': 'New chat',
|
||||
'mobile.sessions.editOrder': 'Reorder projects',
|
||||
'mobile.sessions.doneEditing': 'Done',
|
||||
'mobile.sessions.editOrderHint': 'Drag the handle or use the arrows to reorder projects. Tap the check to finish.',
|
||||
'mobile.sessions.editOrderHint': 'Drag the handle to reorder projects. Tap the check to finish.',
|
||||
'mobile.sessions.editProjectAria': 'Edit {label}',
|
||||
'mobile.sessions.dragHandleAria': 'Drag {label} to reorder',
|
||||
'mobile.sessions.moveUpAria': 'Move {label} up',
|
||||
'mobile.sessions.moveDownAria': 'Move {label} down',
|
||||
@@ -66,6 +67,18 @@ export const dict = {
|
||||
'mobile.sessions.confirmRemoveProject': 'Delete',
|
||||
'mobile.sessions.confirmRemoveProjectAria': 'Confirm removing {label}',
|
||||
'mobile.sessions.toast.projectRemoved': 'Removed {label}',
|
||||
'mobile.projectEdit.worktreesTitle': 'Worktrees',
|
||||
'mobile.projectEdit.worktreesEmpty': 'No worktrees in this project yet.',
|
||||
'mobile.projectEdit.reorderHint': 'Drag to reorder worktrees.',
|
||||
'mobile.projectEdit.dragWorktreeAria': 'Drag {label} to reorder',
|
||||
'mobile.projectEdit.deleteWorktreeAria': 'Remove worktree {label}',
|
||||
'mobile.projectEdit.deleteWorktreeTitle': 'Remove worktree',
|
||||
'mobile.projectEdit.deleteWorktreeConfirmButton': 'Remove',
|
||||
'mobile.projectEdit.deleteWorktreeConfirm': 'Remove the worktree “{name}”? This can’t be undone.',
|
||||
'mobile.projectEdit.deleteWorktreeDirty': 'This worktree has uncommitted changes that will be lost.',
|
||||
'mobile.projectEdit.deleteWorktreeArchiveNote': '{count} attached session(s) will be archived.',
|
||||
'mobile.projectEdit.deleteLocalBranch': 'Also delete local branch',
|
||||
'mobile.projectEdit.deleteRemoteBranch': 'Also delete remote branch',
|
||||
'mobile.sessions.showMore': 'Show {count} more',
|
||||
'mobile.sessions.search.section.sessions': 'Sessions',
|
||||
'mobile.sessions.search.section.archived': 'Archived',
|
||||
|
||||
@@ -67,6 +67,19 @@ export const dict: Record<I18nKey, string> = {
|
||||
"mobile.sessions.confirmRemoveProject": "Eliminar",
|
||||
"mobile.sessions.confirmRemoveProjectAria": "Confirmar eliminación de {label}",
|
||||
"mobile.sessions.toast.projectRemoved": "Se eliminó {label}",
|
||||
"mobile.sessions.editProjectAria": "Editar {label}",
|
||||
"mobile.projectEdit.worktreesTitle": "Worktrees",
|
||||
"mobile.projectEdit.worktreesEmpty": "Este proyecto aún no tiene worktrees.",
|
||||
"mobile.projectEdit.reorderHint": "Arrastra para reordenar los worktrees.",
|
||||
"mobile.projectEdit.dragWorktreeAria": "Arrastra {label} para reordenar",
|
||||
"mobile.projectEdit.deleteWorktreeAria": "Eliminar worktree {label}",
|
||||
"mobile.projectEdit.deleteWorktreeTitle": "Eliminar worktree",
|
||||
"mobile.projectEdit.deleteWorktreeConfirmButton": "Eliminar",
|
||||
"mobile.projectEdit.deleteWorktreeConfirm": "¿Eliminar el worktree «{name}»? No se puede deshacer.",
|
||||
"mobile.projectEdit.deleteWorktreeDirty": "Este worktree tiene cambios sin confirmar que se perderán.",
|
||||
"mobile.projectEdit.deleteWorktreeArchiveNote": "Se archivarán {count} sesión(es) adjunta(s).",
|
||||
"mobile.projectEdit.deleteLocalBranch": "Eliminar también la rama local",
|
||||
"mobile.projectEdit.deleteRemoteBranch": "Eliminar también la rama remota",
|
||||
"mobile.sessions.showMore": "Mostrar {count} más",
|
||||
"mobile.sessions.search.section.sessions": "Sesiones",
|
||||
"mobile.sessions.search.section.archived": "Archivadas",
|
||||
|
||||
@@ -67,6 +67,19 @@ export const dict: Record<I18nKey, string> = {
|
||||
'mobile.sessions.confirmRemoveProject': '삭제',
|
||||
'mobile.sessions.confirmRemoveProjectAria': '{label} 제거 확인',
|
||||
'mobile.sessions.toast.projectRemoved': '{label} 제거됨',
|
||||
'mobile.sessions.editProjectAria': '{label} 편집',
|
||||
'mobile.projectEdit.worktreesTitle': '워크트리',
|
||||
'mobile.projectEdit.worktreesEmpty': '이 프로젝트에는 아직 워크트리가 없습니다.',
|
||||
'mobile.projectEdit.reorderHint': '드래그하여 워크트리 순서를 변경합니다.',
|
||||
'mobile.projectEdit.dragWorktreeAria': '{label} 드래그하여 순서 변경',
|
||||
'mobile.projectEdit.deleteWorktreeAria': '워크트리 {label} 제거',
|
||||
'mobile.projectEdit.deleteWorktreeTitle': '워크트리 제거',
|
||||
'mobile.projectEdit.deleteWorktreeConfirmButton': '제거',
|
||||
'mobile.projectEdit.deleteWorktreeConfirm': '워크트리 “{name}”을(를) 제거할까요? 되돌릴 수 없습니다.',
|
||||
'mobile.projectEdit.deleteWorktreeDirty': '이 워크트리에는 커밋되지 않은 변경 사항이 있어 손실됩니다.',
|
||||
'mobile.projectEdit.deleteWorktreeArchiveNote': '연결된 세션 {count}개가 보관됩니다.',
|
||||
'mobile.projectEdit.deleteLocalBranch': '로컬 브랜치도 삭제',
|
||||
'mobile.projectEdit.deleteRemoteBranch': '원격 브랜치도 삭제',
|
||||
'mobile.sessions.showMore': '{count}개 더 보기',
|
||||
'mobile.sessions.search.section.sessions': '세션',
|
||||
'mobile.sessions.search.section.archived': '보관됨',
|
||||
|
||||
@@ -68,6 +68,19 @@ export const dict: Record<I18nKey, string> = {
|
||||
'mobile.sessions.confirmRemoveProject': 'Usuń',
|
||||
'mobile.sessions.confirmRemoveProjectAria': 'Potwierdź usunięcie {label}',
|
||||
'mobile.sessions.toast.projectRemoved': 'Usunięto {label}',
|
||||
'mobile.sessions.editProjectAria': 'Edytuj {label}',
|
||||
'mobile.projectEdit.worktreesTitle': 'Worktree',
|
||||
'mobile.projectEdit.worktreesEmpty': 'Ten projekt nie ma jeszcze worktree.',
|
||||
'mobile.projectEdit.reorderHint': 'Przeciągnij, aby zmienić kolejność worktree.',
|
||||
'mobile.projectEdit.dragWorktreeAria': 'Przeciągnij {label}, aby zmienić kolejność',
|
||||
'mobile.projectEdit.deleteWorktreeAria': 'Usuń worktree {label}',
|
||||
'mobile.projectEdit.deleteWorktreeTitle': 'Usuń worktree',
|
||||
'mobile.projectEdit.deleteWorktreeConfirmButton': 'Usuń',
|
||||
'mobile.projectEdit.deleteWorktreeConfirm': 'Usunąć worktree „{name}”? Tej operacji nie można cofnąć.',
|
||||
'mobile.projectEdit.deleteWorktreeDirty': 'Ten worktree ma niezatwierdzone zmiany, które zostaną utracone.',
|
||||
'mobile.projectEdit.deleteWorktreeArchiveNote': 'Powiązane sesje ({count}) zostaną zarchiwizowane.',
|
||||
'mobile.projectEdit.deleteLocalBranch': 'Usuń także gałąź lokalną',
|
||||
'mobile.projectEdit.deleteRemoteBranch': 'Usuń także gałąź zdalną',
|
||||
'mobile.sessions.showMore': 'Pokaż jeszcze {count}',
|
||||
'mobile.sessions.search.section.sessions': 'Sesje',
|
||||
'mobile.sessions.search.section.archived': 'Zarchiwizowane',
|
||||
|
||||
@@ -67,6 +67,19 @@ export const dict: Record<I18nKey, string> = {
|
||||
"mobile.sessions.confirmRemoveProject": "Excluir",
|
||||
"mobile.sessions.confirmRemoveProjectAria": "Confirmar remoção de {label}",
|
||||
"mobile.sessions.toast.projectRemoved": "Removido {label}",
|
||||
"mobile.sessions.editProjectAria": "Editar {label}",
|
||||
"mobile.projectEdit.worktreesTitle": "Worktrees",
|
||||
"mobile.projectEdit.worktreesEmpty": "Este projeto ainda não tem worktrees.",
|
||||
"mobile.projectEdit.reorderHint": "Arraste para reordenar os worktrees.",
|
||||
"mobile.projectEdit.dragWorktreeAria": "Arraste {label} para reordenar",
|
||||
"mobile.projectEdit.deleteWorktreeAria": "Remover worktree {label}",
|
||||
"mobile.projectEdit.deleteWorktreeTitle": "Remover worktree",
|
||||
"mobile.projectEdit.deleteWorktreeConfirmButton": "Remover",
|
||||
"mobile.projectEdit.deleteWorktreeConfirm": "Remover o worktree “{name}”? Isso não pode ser desfeito.",
|
||||
"mobile.projectEdit.deleteWorktreeDirty": "Este worktree tem alterações não confirmadas que serão perdidas.",
|
||||
"mobile.projectEdit.deleteWorktreeArchiveNote": "{count} sessão(ões) anexada(s) serão arquivadas.",
|
||||
"mobile.projectEdit.deleteLocalBranch": "Também excluir o branch local",
|
||||
"mobile.projectEdit.deleteRemoteBranch": "Também excluir o branch remoto",
|
||||
"mobile.sessions.showMore": "Mostrar mais {count}",
|
||||
"mobile.sessions.search.section.sessions": "Sessões",
|
||||
"mobile.sessions.search.section.archived": "Arquivadas",
|
||||
|
||||
@@ -67,6 +67,19 @@ export const dict: Record<I18nKey, string> = {
|
||||
"mobile.sessions.confirmRemoveProject": "Видалити",
|
||||
"mobile.sessions.confirmRemoveProjectAria": "Підтвердити видалення {label}",
|
||||
"mobile.sessions.toast.projectRemoved": "Видалено {label}",
|
||||
"mobile.sessions.editProjectAria": "Редагувати {label}",
|
||||
"mobile.projectEdit.worktreesTitle": "Ворктрі",
|
||||
"mobile.projectEdit.worktreesEmpty": "У цьому проєкті ще немає ворктрі.",
|
||||
"mobile.projectEdit.reorderHint": "Перетягніть, щоб змінити порядок ворктрі.",
|
||||
"mobile.projectEdit.dragWorktreeAria": "Перетягнути {label} для зміни порядку",
|
||||
"mobile.projectEdit.deleteWorktreeAria": "Видалити ворктрі {label}",
|
||||
"mobile.projectEdit.deleteWorktreeTitle": "Видалити ворктрі",
|
||||
"mobile.projectEdit.deleteWorktreeConfirmButton": "Видалити",
|
||||
"mobile.projectEdit.deleteWorktreeConfirm": "Видалити ворктрі «{name}»? Цю дію не можна скасувати.",
|
||||
"mobile.projectEdit.deleteWorktreeDirty": "У цьому ворктрі є незакомічені зміни, які буде втрачено.",
|
||||
"mobile.projectEdit.deleteWorktreeArchiveNote": "Прикріплені сесії ({count}) буде заархівовано.",
|
||||
"mobile.projectEdit.deleteLocalBranch": "Також видалити локальну гілку",
|
||||
"mobile.projectEdit.deleteRemoteBranch": "Також видалити віддалену гілку",
|
||||
"mobile.sessions.showMore": "Показати ще {count}",
|
||||
"mobile.sessions.search.section.sessions": "Сесії",
|
||||
"mobile.sessions.search.section.archived": "Архів",
|
||||
|
||||
@@ -67,6 +67,19 @@ export const dict: Record<I18nKey, string> = {
|
||||
'mobile.sessions.confirmRemoveProject': '删除',
|
||||
'mobile.sessions.confirmRemoveProjectAria': '确认移除 {label}',
|
||||
'mobile.sessions.toast.projectRemoved': '已移除 {label}',
|
||||
'mobile.sessions.editProjectAria': '编辑 {label}',
|
||||
'mobile.projectEdit.worktreesTitle': '工作树',
|
||||
'mobile.projectEdit.worktreesEmpty': '此项目还没有工作树。',
|
||||
'mobile.projectEdit.reorderHint': '拖动以重新排序工作树。',
|
||||
'mobile.projectEdit.dragWorktreeAria': '拖动 {label} 以重新排序',
|
||||
'mobile.projectEdit.deleteWorktreeAria': '移除工作树 {label}',
|
||||
'mobile.projectEdit.deleteWorktreeTitle': '移除工作树',
|
||||
'mobile.projectEdit.deleteWorktreeConfirmButton': '移除',
|
||||
'mobile.projectEdit.deleteWorktreeConfirm': '移除工作树“{name}”?此操作无法撤销。',
|
||||
'mobile.projectEdit.deleteWorktreeDirty': '此工作树有未提交的更改,将会丢失。',
|
||||
'mobile.projectEdit.deleteWorktreeArchiveNote': '将归档 {count} 个关联会话。',
|
||||
'mobile.projectEdit.deleteLocalBranch': '同时删除本地分支',
|
||||
'mobile.projectEdit.deleteRemoteBranch': '同时删除远程分支',
|
||||
'mobile.sessions.showMore': '再显示 {count} 个',
|
||||
'mobile.sessions.search.section.sessions': '会话',
|
||||
'mobile.sessions.search.section.archived': '已归档',
|
||||
|
||||
@@ -67,6 +67,19 @@ export const dict: Record<I18nKey, string> = {
|
||||
'mobile.sessions.confirmRemoveProject': '刪除',
|
||||
'mobile.sessions.confirmRemoveProjectAria': '確認移除 {label}',
|
||||
'mobile.sessions.toast.projectRemoved': '已移除 {label}',
|
||||
'mobile.sessions.editProjectAria': '編輯 {label}',
|
||||
'mobile.projectEdit.worktreesTitle': '工作樹',
|
||||
'mobile.projectEdit.worktreesEmpty': '此專案還沒有工作樹。',
|
||||
'mobile.projectEdit.reorderHint': '拖曳以重新排序工作樹。',
|
||||
'mobile.projectEdit.dragWorktreeAria': '拖曳 {label} 以重新排序',
|
||||
'mobile.projectEdit.deleteWorktreeAria': '移除工作樹 {label}',
|
||||
'mobile.projectEdit.deleteWorktreeTitle': '移除工作樹',
|
||||
'mobile.projectEdit.deleteWorktreeConfirmButton': '移除',
|
||||
'mobile.projectEdit.deleteWorktreeConfirm': '移除工作樹「{name}」?此操作無法復原。',
|
||||
'mobile.projectEdit.deleteWorktreeDirty': '此工作樹有未提交的變更,將會遺失。',
|
||||
'mobile.projectEdit.deleteWorktreeArchiveNote': '將封存 {count} 個關聯工作階段。',
|
||||
'mobile.projectEdit.deleteLocalBranch': '同時刪除本機分支',
|
||||
'mobile.projectEdit.deleteRemoteBranch': '同時刪除遠端分支',
|
||||
'mobile.sessions.showMore': '再顯示 {count} 個',
|
||||
'mobile.sessions.search.section.sessions': '會話',
|
||||
'mobile.sessions.search.section.archived': '已封存',
|
||||
|
||||
Reference in New Issue
Block a user