From df989e24b3937876f094301e33762677d604888a Mon Sep 17 00:00:00 2001
From: cgoIT <carsten.goetzinger@concedro.com>
Date: Wed, 19 Apr 2023 20:30:45 +0200
Subject: feat(ipv4-range-expander): expands a given IPv4 start and end address
 to a valid IPv4 subnet (#366)

* feat(ipv4-range-expander): expands a given IPv4 start and end address to a valid IPv4 subnet

* feat(ipv4-range-expander): remove old component copyable-ip-like.vue

* feat(ipv4-range-expander): fix sonar findings

* feat(ipv4-range-expander): changes due to review

* feat(ipv4-range-expander): only show n-alert if both ipv4 addresses are valid
---
 src/components/SpanCopyable.vue | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 src/components/SpanCopyable.vue

(limited to 'src/components/SpanCopyable.vue')

diff --git a/src/components/SpanCopyable.vue b/src/components/SpanCopyable.vue
new file mode 100644
index 0000000..caac35d
--- /dev/null
+++ b/src/components/SpanCopyable.vue
@@ -0,0 +1,35 @@
+<template>
+  <n-tooltip trigger="hover">
+    <template #trigger>
+      <span class="value" @click="handleClick">{{ value }}</span>
+    </template>
+    {{ tooltipText }}
+  </n-tooltip>
+</template>
+
+<script setup lang="ts">
+import { useClipboard } from '@vueuse/core';
+import { ref, toRefs } from 'vue';
+
+const props = withDefaults(defineProps<{ value?: string }>(), { value: '' });
+const { value } = toRefs(props);
+
+const initialText = 'Copy to clipboard';
+const tooltipText = ref(initialText);
+
+const { copy } = useClipboard({ source: value });
+
+function handleClick() {
+  copy();
+  tooltipText.value = 'Copied!';
+
+  setTimeout(() => (tooltipText.value = initialText), 1000);
+}
+</script>
+
+<style scoped lang="less">
+.value {
+  cursor: pointer;
+  font-family: monospace;
+}
+</style>
-- 
cgit v1.2.3

