feat: add quick-add button to directory explorer rows (#1351)
This commit is contained in:
@@ -389,6 +389,18 @@ export const DirectoryExplorerDialog: React.FC<DirectoryExplorerDialogProps> = (
|
||||
onOpenChange(false);
|
||||
}, [onOpenChange]);
|
||||
|
||||
const handleQuickAdd = React.useCallback((event: React.MouseEvent, path: string) => {
|
||||
event.stopPropagation();
|
||||
const normalized = normalizeDirectoryPath(path);
|
||||
if (normalized && addedProjectPaths.has(normalized)) return;
|
||||
const added = addProject(path);
|
||||
if (!added) {
|
||||
toast.error(t('directoryExplorerDialog.toast.failedToAddProject'), {
|
||||
description: t('directoryExplorerDialog.toast.selectValidDirectoryPath'),
|
||||
});
|
||||
}
|
||||
}, [addProject, addedProjectPaths, t]);
|
||||
|
||||
const finalizeSelection = React.useCallback(async (target: string) => {
|
||||
if (!target || isConfirming) return;
|
||||
const normalized = normalizeDirectoryPath(target);
|
||||
@@ -628,6 +640,16 @@ export const DirectoryExplorerDialog: React.FC<DirectoryExplorerDialogProps> = (
|
||||
<span className="rounded-full border border-border/60 px-2 py-0.5 typography-meta text-muted-foreground">
|
||||
{t('directoryExplorerDialog.browse.addedBadge')}
|
||||
</span>
|
||||
) : row.type === 'directory' ? (
|
||||
<button
|
||||
type="button"
|
||||
onMouseDown={(event) => event.stopPropagation()}
|
||||
onClick={(event) => handleQuickAdd(event, row.path)}
|
||||
className="flex-shrink-0 rounded-full p-1 text-muted-foreground transition-colors hover:bg-interactive-hover/60 hover:text-foreground"
|
||||
title={t('directoryExplorerDialog.browse.quickAdd')}
|
||||
>
|
||||
<Icon name="add" className="h-3.5 w-3.5" />
|
||||
</button>
|
||||
) : null}
|
||||
</button>
|
||||
);
|
||||
|
||||
@@ -1166,6 +1166,7 @@ export const dict = {
|
||||
'directoryExplorerDialog.browse.empty': 'No matching directories.',
|
||||
'directoryExplorerDialog.browse.parentDirectory': 'Parent directory',
|
||||
'directoryExplorerDialog.browse.addedBadge': 'Added',
|
||||
'directoryExplorerDialog.browse.quickAdd': 'Add',
|
||||
'directoryExplorerDialog.footer.navigate': 'Navigate',
|
||||
'directoryExplorerDialog.footer.select': 'Select',
|
||||
'directoryExplorerDialog.footer.add': 'Add',
|
||||
|
||||
@@ -1132,6 +1132,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"directoryExplorerDialog.browse.empty": "No hay directorios coincidentes.",
|
||||
"directoryExplorerDialog.browse.parentDirectory": "Directorio padre",
|
||||
"directoryExplorerDialog.browse.addedBadge": "Añadido",
|
||||
"directoryExplorerDialog.browse.quickAdd": "Añadir",
|
||||
"directoryExplorerDialog.footer.navigate": "Navegar",
|
||||
"directoryExplorerDialog.footer.select": "Seleccionar",
|
||||
"directoryExplorerDialog.footer.add": "Añadir",
|
||||
|
||||
@@ -1168,6 +1168,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'directoryExplorerDialog.browse.empty': '일치하는 디렉터리가 없습니다.',
|
||||
'directoryExplorerDialog.browse.parentDirectory': '상위 디렉터리',
|
||||
'directoryExplorerDialog.browse.addedBadge': '추가됨',
|
||||
'directoryExplorerDialog.browse.quickAdd': '추가',
|
||||
'directoryExplorerDialog.footer.navigate': '탐색',
|
||||
'directoryExplorerDialog.footer.select': '선택',
|
||||
'directoryExplorerDialog.footer.add': '추가',
|
||||
|
||||
@@ -1271,6 +1271,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'directoryExplorerDialog.actions.openInFinder': 'Otwórz w Finderze',
|
||||
'directoryExplorerDialog.actions.openingFinder': 'Otwieranie...',
|
||||
'directoryExplorerDialog.browse.addedBadge': 'Dodano',
|
||||
'directoryExplorerDialog.browse.quickAdd': 'Dodaj',
|
||||
'directoryExplorerDialog.browse.directories': 'Katalogi',
|
||||
'directoryExplorerDialog.browse.empty': 'Brak pasujących katalogów.',
|
||||
'directoryExplorerDialog.browse.loading': 'Ładowanie katalogów...',
|
||||
|
||||
@@ -1132,6 +1132,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"directoryExplorerDialog.browse.empty": "Nenhum diretório correspondente.",
|
||||
"directoryExplorerDialog.browse.parentDirectory": "Diretório pai",
|
||||
"directoryExplorerDialog.browse.addedBadge": "Adicionado",
|
||||
"directoryExplorerDialog.browse.quickAdd": "Adicionar",
|
||||
"directoryExplorerDialog.footer.navigate": "Navegar",
|
||||
"directoryExplorerDialog.footer.select": "Selecionar",
|
||||
"directoryExplorerDialog.footer.add": "Adicionar",
|
||||
|
||||
@@ -1132,6 +1132,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"directoryExplorerDialog.browse.empty": "Немає відповідних каталогів.",
|
||||
"directoryExplorerDialog.browse.parentDirectory": "Батьківський каталог",
|
||||
"directoryExplorerDialog.browse.addedBadge": "Додано",
|
||||
"directoryExplorerDialog.browse.quickAdd": "Додати",
|
||||
"directoryExplorerDialog.footer.navigate": "Навігація",
|
||||
"directoryExplorerDialog.footer.select": "Вибрати",
|
||||
"directoryExplorerDialog.footer.add": "Додати",
|
||||
|
||||
@@ -1132,6 +1132,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'directoryExplorerDialog.browse.empty': '没有匹配的目录。',
|
||||
'directoryExplorerDialog.browse.parentDirectory': '上级目录',
|
||||
'directoryExplorerDialog.browse.addedBadge': '已添加',
|
||||
'directoryExplorerDialog.browse.quickAdd': '添加',
|
||||
'directoryExplorerDialog.footer.navigate': '导航',
|
||||
'directoryExplorerDialog.footer.select': '选择',
|
||||
'directoryExplorerDialog.footer.add': '添加',
|
||||
|
||||
Reference in New Issue
Block a user