2022-04-04 21:46:35 +02:00
|
|
|
<template>
|
2023-04-13 23:30:33 +02:00
|
|
|
<n-space vertical :size="20">
|
|
|
|
<n-space align="center" justify="center">
|
|
|
|
Quantity :
|
|
|
|
<n-input-number v-model:value="count" :min="1" :max="50" placeholder="UUID quantity" />
|
|
|
|
</n-space>
|
|
|
|
|
|
|
|
<n-input
|
|
|
|
style="text-align: center; font-family: monospace"
|
|
|
|
:value="uuids"
|
|
|
|
type="textarea"
|
|
|
|
placeholder="Your uuids"
|
|
|
|
:autosize="{ minRows: 1 }"
|
|
|
|
readonly
|
|
|
|
autocomplete="off"
|
|
|
|
autocorrect="off"
|
|
|
|
autocapitalize="off"
|
|
|
|
spellcheck="false"
|
|
|
|
/>
|
|
|
|
|
|
|
|
<n-space justify="center">
|
|
|
|
<n-button secondary autofocus @click="copy"> Copy </n-button>
|
|
|
|
<n-button secondary @click="refreshUUIDs"> Refresh </n-button>
|
|
|
|
</n-space>
|
|
|
|
</n-space>
|
2022-04-04 21:46:35 +02:00
|
|
|
</template>
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
|
import { useCopy } from '@/composable/copy';
|
|
|
|
import { v4 as generateUUID } from 'uuid';
|
2023-03-29 21:13:49 +02:00
|
|
|
import { computedRefreshable } from '@/composable/computedRefreshable';
|
2022-04-04 21:46:35 +02:00
|
|
|
|
2023-04-13 23:30:33 +02:00
|
|
|
const count = useStorage('uuid-generator:quantity', 1);
|
2022-04-04 21:46:35 +02:00
|
|
|
|
2023-03-29 21:13:49 +02:00
|
|
|
const [uuids, refreshUUIDs] = computedRefreshable(() =>
|
|
|
|
Array.from({ length: count.value }, () => generateUUID()).join('\n'),
|
|
|
|
);
|
2022-04-04 21:46:35 +02:00
|
|
|
|
2022-04-22 23:31:40 +02:00
|
|
|
const { copy } = useCopy({ source: uuids, text: 'UUIDs copied to the clipboard' });
|
2022-04-04 21:46:35 +02:00
|
|
|
</script>
|