diff options
| author | Julia <julia@insertdomain.name> | 2025-04-27 21:26:13 +0000 |
|---|---|---|
| committer | Julia <julia@insertdomain.name> | 2025-04-27 21:26:13 +0000 |
| commit | baa75768ecb5cafbe1bbbd8b14453b04dcedf285 (patch) | |
| tree | 6bea893e9877d45fa1e21468ca8ddeb6e811bedf /packages/frontend-shared | |
| parent | merge: Fix typo in contributing. (!965) (diff) | |
| parent | Merge branch 'stable' into merge-stable-into-develop (diff) | |
| download | sharkey-baa75768ecb5cafbe1bbbd8b14453b04dcedf285.tar.gz sharkey-baa75768ecb5cafbe1bbbd8b14453b04dcedf285.tar.bz2 sharkey-baa75768ecb5cafbe1bbbd8b14453b04dcedf285.zip | |
merge: Merge stable into develop (!971)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/971
Diffstat (limited to 'packages/frontend-shared')
| -rw-r--r-- | packages/frontend-shared/js/math.ts | 10 | ||||
| -rw-r--r-- | packages/frontend-shared/js/url.ts | 17 |
2 files changed, 27 insertions, 0 deletions
diff --git a/packages/frontend-shared/js/math.ts b/packages/frontend-shared/js/math.ts new file mode 100644 index 0000000000..528f3b08bf --- /dev/null +++ b/packages/frontend-shared/js/math.ts @@ -0,0 +1,10 @@ +/* + * SPDX-FileCopyrightText: dakkar and other Sharkey contributors + * SPDX-License-Identifier: AGPL-3.0-only + */ + +export function clamp(value: number, min: number, max: number) { + if (value > max) return max; + if (value < min) return min; + return value; +} diff --git a/packages/frontend-shared/js/url.ts b/packages/frontend-shared/js/url.ts index eb830b1eea..ed36704d92 100644 --- a/packages/frontend-shared/js/url.ts +++ b/packages/frontend-shared/js/url.ts @@ -26,3 +26,20 @@ export function extractDomain(url: string) { const match = url.match(/^(?:https?:)?(?:\/\/)?(?:[^@\n]+@)?([^:\/\n]+)/im); return match ? match[1] : null; } + +export function maybeMakeRelative(urlStr: string, baseStr: string): string { + try { + const baseObj = new URL(baseStr); + const urlObj = new URL(urlStr); + /* in all places where maybeMakeRelative is used, baseStr is the + * instance's public URL, which can't have path components, so the + * relative URL will always have the whole path from the urlStr + */ + if (urlObj.origin === baseObj.origin) { + return urlObj.pathname + urlObj.search + urlObj.hash; + } + return urlStr; + } catch (error) { + return ''; + } +} |