summaryrefslogtreecommitdiffstats
path: root/src/lib/components/MirrorSelector.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/components/MirrorSelector.svelte')
-rw-r--r--src/lib/components/MirrorSelector.svelte26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/lib/components/MirrorSelector.svelte b/src/lib/components/MirrorSelector.svelte
new file mode 100644
index 0000000..7db4885
--- /dev/null
+++ b/src/lib/components/MirrorSelector.svelte
@@ -0,0 +1,26 @@
+<script lang="ts">
+ import { selectedDomain } from '$lib/stores/mirror';
+
+ interface Props {
+ domains: string[];
+ }
+
+ let { domains }: Props = $props();
+
+ function getHostname(url: string) {
+ try {
+ return new URL(url).hostname;
+ } catch {
+ return url;
+ }
+ }
+</script>
+
+<div class="controls">
+ <label for="mirror-select">Select Mirror:&nbsp;</label>
+ <select id="mirror-select" bind:value={$selectedDomain}>
+ {#each domains as domain}
+ <option value={domain}>{getHostname(domain)}</option>
+ {/each}
+ </select>
+</div>