diff --git a/packages/ui/src/components/create-pr-menu.tsx b/packages/ui/src/components/create-pr-menu.tsx
index 4beb5653..eaa6a43f 100644
--- a/packages/ui/src/components/create-pr-menu.tsx
+++ b/packages/ui/src/components/create-pr-menu.tsx
@@ -1,25 +1,12 @@
import { DropdownMenuItem } from "../ui/dropdown-menu";
-import { IconExternal, IconPullRequest } from "../icons";
+import { IconPullRequest } from "../icons";
-type CreatePrMenuProps = {
- onCreateDraftPr?: () => void;
- onManualCreatePr?: () => void;
-};
-
-function CreatePrMenu({ onCreateDraftPr, onManualCreatePr }: CreatePrMenuProps) {
+function CreatePrMenu({ onCreateDraftPr }: { onCreateDraftPr?: () => void }) {
return (
- <>
-
-
- Create draft PR
-
- {onManualCreatePr && (
-
-
- Manually create PR
-
- )}
- >
+
+
+ Create draft PR
+
);
}
diff --git a/packages/ui/src/components/diff/diff-actions.tsx b/packages/ui/src/components/diff/diff-actions.tsx
index 1b7f4a5c..bdffdba6 100644
--- a/packages/ui/src/components/diff/diff-actions.tsx
+++ b/packages/ui/src/components/diff/diff-actions.tsx
@@ -30,7 +30,6 @@ function PrAction({
onOpenPr,
onCreatePr,
onCreateDraftPr,
- onManualCreatePr,
}: {
pr?: DiffViewPr;
creatingPr?: boolean;
@@ -38,7 +37,6 @@ function PrAction({
onOpenPr?: () => void;
onCreatePr?: () => void;
onCreateDraftPr?: () => void;
- onManualCreatePr?: () => void;
}) {
if (pr) {
let content = (
@@ -108,7 +106,6 @@ function PrAction({
menu={
}
menuLabel="Create PR options"
diff --git a/packages/ui/src/components/diff/diff-view.tsx b/packages/ui/src/components/diff/diff-view.tsx
index 8e7d8fac..bce8957f 100644
--- a/packages/ui/src/components/diff/diff-view.tsx
+++ b/packages/ui/src/components/diff/diff-view.tsx
@@ -388,7 +388,6 @@ function useDiffView({
onOpenPr,
onCreatePr,
onCreateDraftPr,
- onManualCreatePr,
actions,
onFileOpen,
className,
@@ -562,7 +561,6 @@ function useDiffView({
onOpenPr,
onCreatePr,
onCreateDraftPr,
- onManualCreatePr,
actions,
className,
summary,
@@ -595,7 +593,6 @@ function DiffViewContent(props: DiffViewProps & { kept: Kept }) {
onOpenPr,
onCreatePr,
onCreateDraftPr,
- onManualCreatePr,
actions,
className,
summary,
@@ -680,7 +677,6 @@ function DiffViewContent(props: DiffViewProps & { kept: Kept }) {
onOpenPr={onOpenPr}
onCreatePr={onCreatePr}
onCreateDraftPr={onCreateDraftPr}
- onManualCreatePr={onManualCreatePr}
/>
void;
onCreatePr?: () => void;
onCreateDraftPr?: () => void;
- onManualCreatePr?: () => void;
/** Git and pull request actions for the branch, each offered only while it can be taken. */
actions?: GitAction[];
onFileOpen?: (file: DiffViewFile) => void;
diff --git a/packages/ui/src/components/message-toolbar/message-toolbar.tsx b/packages/ui/src/components/message-toolbar/message-toolbar.tsx
index 6e2a4baf..3c2989cf 100644
--- a/packages/ui/src/components/message-toolbar/message-toolbar.tsx
+++ b/packages/ui/src/components/message-toolbar/message-toolbar.tsx
@@ -62,6 +62,9 @@ function MessageToolbar(
let [menu, setMenu] = useState(false);
let [popup, setPopup] = useState(false);
let button = useRef(null);
+ let edit = mine && canEdit;
+ // A deleted message, or one in an archived channel, can't be deleted, so More drops Delete.
+ let remove = mine && actions?.delete !== false;
function handleOpenChange(o: boolean) {
setOpen(o);
@@ -148,7 +151,7 @@ function MessageToolbar(
ref={button}
active={menu}
aria-label="More"
- className={!mine ? "notouch:hidden" : undefined}
+ className={!edit && !remove ? "notouch:hidden" : undefined}
icon={}
/>
}
@@ -188,34 +191,29 @@ function MessageToolbar(
Copy link
- {mine && canEdit && }
- {mine && (
- <>
- {canEdit && (
- <>
- {
- onAction({ type: "edit" });
- }}
- disabled={actions?.edit === false}
- >
-
- Edit
-
-
- >
- )}
- {
- onAction({ type: "delete" });
- }}
- >
-
- Delete
-
- >
+ {(edit || remove) && }
+ {edit && (
+ {
+ onAction({ type: "edit" });
+ }}
+ disabled={actions?.edit === false}
+ >
+
+ Edit
+
+ )}
+ {edit && remove && }
+ {remove && (
+ {
+ onAction({ type: "delete" });
+ }}
+ >
+
+ Delete
+
)}
diff --git a/packages/ui/src/components/session-item/session-item.tsx b/packages/ui/src/components/session-item/session-item.tsx
index d6cdafc9..cb4036f8 100644
--- a/packages/ui/src/components/session-item/session-item.tsx
+++ b/packages/ui/src/components/session-item/session-item.tsx
@@ -205,18 +205,18 @@ function actions(data: SidebarRow, props: RowActions): RowActions {
if (data.kind === "lobby") return { onRebuild: props.onRebuild };
let pins = { onPin: props.onPin, onUnpin: props.onUnpin };
// Archived channels leave every group but Archived, so a pin would never show.
- if (data.lifecycle === "archived") {
- return {
- onArchive: data.capabilities?.archive === false ? undefined : props.onArchive,
- onDelete: data.capabilities?.delete === false ? undefined : props.onDelete,
- };
- }
+ let remove = {
+ onArchive: data.capabilities?.archive === false ? undefined : props.onArchive,
+ // A live channel's menu shows Delete disabled, with Archive first, so the path is findable.
+ onDelete: data.capabilities?.delete === false ? undefined : props.onDelete,
+ };
+ if (data.lifecycle === "archived") return remove;
return {
...pins,
+ ...remove,
onFork: data.capabilities?.fork === false ? undefined : props.onFork,
onInfo: props.onInfo,
onLeave: props.onLeave,
- onArchive: data.capabilities?.archive === false ? undefined : props.onArchive,
onRename: data.capabilities?.rename === false ? undefined : props.onRename,
...(data.capabilities?.move
? { onMoveTargets: props.onMoveTargets, onMove: props.onMove }