feat(FN-5098): complete Step 5 — add settings link to secrets view
Fusion-Task-Id: FN-5098 Fusion-Task-Lineage: 67ff982f-f0fa-453a-9b73-32ddc3ae5b3a
This commit is contained in:
committed by
gsxdsm
parent
71619bf5e6
commit
da2d3632ab
@@ -1942,6 +1942,10 @@ function AppInner() {
|
||||
onSettingsClose={handleSettingsClose}
|
||||
onReopenOnboarding={reopenOnboardingWithNav}
|
||||
onOpenApprovals={(_approvalId) => handleTaskViewChange("mailbox")}
|
||||
onNavigateToSecrets={() => {
|
||||
modalManager.closeSettings();
|
||||
handleChangeTaskView("secrets");
|
||||
}}
|
||||
/>
|
||||
<AuthTokenRecoveryDialog open={authTokenRecoveryOpen} />
|
||||
{shellApi && (
|
||||
|
||||
@@ -79,6 +79,8 @@ interface AppModalsProps {
|
||||
onReopenOnboarding?: () => void;
|
||||
/** Optional callback to open mailbox approvals from Settings. */
|
||||
onOpenApprovals?: (approvalId?: string) => void;
|
||||
/** Optional callback to navigate from Settings to Secrets view. */
|
||||
onNavigateToSecrets?: () => void;
|
||||
}
|
||||
|
||||
export function AppModals({
|
||||
@@ -98,6 +100,7 @@ export function AppModals({
|
||||
onSettingsClose,
|
||||
onReopenOnboarding,
|
||||
onOpenApprovals,
|
||||
onNavigateToSecrets,
|
||||
}: AppModalsProps) {
|
||||
const [firstCreatedTask, setFirstCreatedTask] = useState<Task | null>(null);
|
||||
const detailTask = modalManager.detailTask
|
||||
@@ -200,6 +203,7 @@ export function AppModals({
|
||||
onDashboardFontScaleChange={settings.setDashboardFontScalePct}
|
||||
onReopenOnboarding={onReopenOnboarding}
|
||||
onOpenApprovals={onOpenApprovals}
|
||||
onNavigateToSecrets={onNavigateToSecrets}
|
||||
/>
|
||||
</Suspense>
|
||||
</ModalErrorBoundary>
|
||||
|
||||
@@ -393,6 +393,8 @@ interface SettingsModalProps {
|
||||
onReopenOnboarding?: () => void;
|
||||
/** Optional callback to open approvals/mailbox view. */
|
||||
onOpenApprovals?: (approvalId?: string) => void;
|
||||
/** Optional callback to navigate from settings to Secrets view. */
|
||||
onNavigateToSecrets?: () => void;
|
||||
}
|
||||
|
||||
export function SettingsModal({
|
||||
@@ -408,6 +410,7 @@ export function SettingsModal({
|
||||
onDashboardFontScaleChange,
|
||||
onReopenOnboarding,
|
||||
onOpenApprovals,
|
||||
onNavigateToSecrets,
|
||||
}: SettingsModalProps) {
|
||||
const { confirm } = useConfirm();
|
||||
const worktrunkInstall = useWorktrunkInstallStatus(projectId);
|
||||
@@ -7219,6 +7222,16 @@ export function SettingsModal({
|
||||
)}
|
||||
<div className="modal-actions">
|
||||
<div className="modal-actions-left">
|
||||
<a
|
||||
href="?view=secrets"
|
||||
className="settings-inline-link"
|
||||
onClick={(event) => {
|
||||
event.preventDefault();
|
||||
onNavigateToSecrets?.();
|
||||
}}
|
||||
>
|
||||
Manage secrets
|
||||
</a>
|
||||
<button
|
||||
type="button"
|
||||
className="btn btn-sm"
|
||||
|
||||
@@ -347,6 +347,15 @@ describe("SettingsModal", () => {
|
||||
expect(await screen.findByTestId("pi-extensions-manager")).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("fires onNavigateToSecrets when Manage secrets is clicked", async () => {
|
||||
const onNavigateToSecrets = vi.fn();
|
||||
renderModal({ onNavigateToSecrets });
|
||||
await waitForSettingsModalReady();
|
||||
|
||||
await userEvent.click(screen.getByRole("link", { name: "Manage secrets" }));
|
||||
expect(onNavigateToSecrets).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
it("shows direct merge commit routing only for direct merges", async () => {
|
||||
renderModal();
|
||||
await waitForSettingsModalReady();
|
||||
|
||||
Reference in New Issue
Block a user