authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-09-17 20:19:46-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-17 20:19:46-07:00
log8eb1f6e74869130b7602e0c6b0ab56b7805c0889
treef5caca62030c3de55803362fe13e20726149f3be
parent4aa841a8d45ccd611a809351db0b693faba6ba13
signature Signed by PGP key B5690EEEBB952194

refactor(web): reuse inline settings actions (#12362)


2 files changed, 12 insertions(+), 14 deletions(-)

apps/web/src/components/settings/ExpandableText.tsx+4-4
......@@ -1,3 +1,4 @@
1import { InlineButton } from "../ui/button";
12import { useId, useState } from "react";
23
34import { cn } from "../../lib/utils";
......@@ -33,15 +34,14 @@ export function ExpandableText({
3334 {text}
3435 </div>
3536 {canExpand ? (
36 <button
37 type="button"
37 <InlineButton
3838 aria-expanded={expanded}
3939 aria-controls={textId}
40 className="cursor-pointer mt-1 text-[11px] font-medium text-foreground/70 underline-offset-2 hover:text-foreground hover:underline"
40 className="mt-1 text-[11px] font-medium text-foreground/70 underline-offset-2 hover:text-foreground hover:underline"
4141 onClick={() => setExpanded((value) => !value)}
4242 >
4343 {expanded ? "Show less" : expandLabel}
44 </button>
44 </InlineButton>
4545 ) : null}
4646 </div>
4747 );
apps/web/src/components/settings/SettingInheritance.tsx+8-10
......@@ -11,7 +11,7 @@ import type { EnvironmentPresentation } from "../../state/environments";
1111import { EnvironmentMachineIcon } from "../EnvironmentMachineIcon";
1212import { resolveEnvModeLabel } from "../BranchToolbar.logic";
1313import { PULL_REQUEST_MERGE_METHOD_LABELS } from "../pullRequest/pullRequestDetail.logic";
14import { Button } from "../ui/button";
14import { Button, InlineButton } from "../ui/button";
1515import { Popover, PopoverPopup, PopoverTrigger } from "../ui/popover";
1616import { Tooltip, TooltipPopup, TooltipTrigger } from "../ui/tooltip";
1717import type { ProjectOverrideEntry, ScopedSettingsTarget } from "./scopedSettings";
......@@ -261,13 +261,12 @@ export function SettingInheritance({
261261 <div className="flex items-center justify-between gap-3 px-2 text-xs text-muted-foreground">
262262 <span>Overridden by</span>
263263 {onClearOverrides ? (
264 <button
265 type="button"
266 className="cursor-pointer font-medium text-foreground underline-offset-2 hover:underline focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring"
264 <InlineButton
265 className="font-medium text-foreground underline-offset-2 hover:underline"
267266 onClick={() => onClearOverrides(overriding)}
268267 >
269268 Reset {overriding.length === 1 ? "it" : "all"}
270 </button>
269 </InlineButton>
271270 ) : null}
272271 </div>
273272 <ul role="list" className="mt-0.5 text-sm">
......@@ -276,13 +275,12 @@ export function SettingInheritance({
276275 key={project.projectId}
277276 className="grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 px-2 py-1"
278277 >
279 <button
280 type="button"
281 className="min-w-0 cursor-pointer truncate text-left text-foreground underline-offset-2 hover:underline focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring"
278 <InlineButton
279 className="min-w-0 justify-start text-left text-foreground underline-offset-2 hover:underline"
282280 onClick={project.open}
283281 >
284 {project.label}
285 </button>
282 <span className="truncate">{project.label}</span>
283 </InlineButton>
286284 <span className="max-w-32 truncate text-muted-foreground tabular-nums">
287285 {isProjectScopedSettingKey(key)
288286 ? formatValue(key, overrides[project.projectId]?.[key])