-
>
)
}
-function DialogDeleteAllWorkspaces(props: { count: number; project: string; onDelete: () => Promise
}) {
+function WorkspacePath(props: { directory: string }) {
+ const [truncated, setTruncated] = createSignal(false)
+ const name = () => getFilename(props.directory)
+
+ return (
+
+ createResizeObserver(element, () => setTruncated(element.scrollWidth > element.clientWidth))}
+ tabIndex={truncated() ? 0 : undefined}
+ dir="ltr"
+ aria-label={props.directory}
+ class="settings-workspaces-path"
+ >
+ {props.directory.slice(0, -name().length)}
+ {name()}
+
+
+ )
+}
+
+function DialogDeleteWorkspaces(props: {
+ title: string
+ confirmation: string
+ warning: string
+ onDelete: () => Promise
+}) {
const dialog = useDialog()
const language = useLanguage()
const remove = () => {
@@ -434,13 +523,12 @@ function DialogDeleteAllWorkspaces(props: { count: number; project: string; onDe
@@ -472,7 +560,7 @@ function DialogDeleteWorkspace(props: {
staleTime: 0,
}))
const descriptions = () => {
- if (status.isPending) return [language.t("workspace.status.checking")]
+ if (status.isPending) return []
if (status.isError) return [language.t("workspace.status.error")]
if (!status.data) return []
return props.inspectionMessages(status.data.result)
@@ -487,18 +575,20 @@ function DialogDeleteWorkspace(props: {
),
}
diff --git a/packages/ui/src/overlays/tooltip/tooltip.tsx b/packages/ui/src/overlays/tooltip/tooltip.tsx
index 86a5939e9ec..6e3f93801ae 100644
--- a/packages/ui/src/overlays/tooltip/tooltip.tsx
+++ b/packages/ui/src/overlays/tooltip/tooltip.tsx
@@ -6,7 +6,7 @@ import "./tooltip.css"
export interface TooltipProps extends ComponentProps