feat: implement openExternalUrl utility for consistent external link handling

This commit is contained in:
2026-01-24 07:59:45 +11:00
parent c0af925420
commit a6b76a9be7
5 changed files with 29 additions and 12 deletions

View File

@@ -1,4 +1,5 @@
import React, { useCallback, useState } from 'react';
import { openExternalUrl } from '../../../utils/tauri';
import { Box, Button, config, Menu, Spinner, Text } from 'folds';
import { AuthDict, IMyDevice, MatrixError } from 'matrix-js-sdk';
import { SequenceCard } from '../../../components/sequence-card';
@@ -33,11 +34,10 @@ export function OtherDevices({ devices, refreshDeviceList, showVerification }: O
const authUrl = authMetadata?.account_management_uri ?? authMetadata?.issuer;
if (!authUrl) return;
window.open(
openExternalUrl(
withSearchParam(authUrl, {
action: accountManagementActions.sessionsList,
}),
'_blank'
})
);
}, [authMetadata, accountManagementActions]);
@@ -46,12 +46,11 @@ export function OtherDevices({ devices, refreshDeviceList, showVerification }: O
const authUrl = authMetadata?.account_management_uri ?? authMetadata?.issuer;
if (!authUrl) return;
window.open(
openExternalUrl(
withSearchParam(authUrl, {
action: accountManagementActions.sessionEnd,
device_id: deviceId,
}),
'_blank'
})
);
},
[authMetadata, accountManagementActions]

View File

@@ -35,6 +35,7 @@ import { stopPropagation } from '../../../utils/keyboard';
import { useAuthMetadata } from '../../../hooks/useAuthMetadata';
import { withSearchParam } from '../../../pages/pathUtils';
import { useAccountManagementActions } from '../../../hooks/useAccountManagement';
import { openExternalUrl } from '../../../utils/tauri';
type VerificationStatusBadgeProps = {
verificationStatus: VerificationStatus;
@@ -273,11 +274,10 @@ export function DeviceVerificationOptions() {
if (authMetadata) {
const authUrl = authMetadata.account_management_uri ?? authMetadata.issuer;
window.open(
openExternalUrl(
withSearchParam(authUrl, {
action: accountManagementActions.crossSigningReset,
}),
'_blank'
})
);
return;
}