<script context="module" lang="ts">
  interface PropsType {
    text: string;
    successCallback?: (info: any) => void;
  }
</script>

<script lang="ts">
  import IconButton from "../IconButton/index.svelte";

  export let text: PropsType["text"];
  export let successCallback: PropsType["successCallback"] = undefined;

  function copyToClipboard(text: string) {
    navigator.clipboard.writeText(text);
  }
  function handleClick() {
    copyToClipboard(text);
    typeof successCallback === "function" &&
      successCallback({
        operation: "COPY",
      });
  }
</script>

<IconButton label="Copy" icon="CopytoClipboardIcon" {handleClick} />