File size: 949 Bytes
0ad74ed |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
<script lang="ts">
import IconButton from "./IconButton.svelte";
import { Community } from "@gradio/icons";
import { createEventDispatcher } from "svelte";
import type { ShareData } from "@gradio/utils";
import { ShareError } from "@gradio/utils";
import type { I18nFormatter } from "@gradio/utils";
const dispatch = createEventDispatcher<{
share: ShareData;
error: string;
}>();
export let formatter: (arg0: any) => Promise<string>;
export let value: any;
export let i18n: I18nFormatter;
let pending = false;
</script>
<IconButton
Icon={Community}
label={i18n("common.share")}
{pending}
on:click={async () => {
try {
pending = true;
const formatted = await formatter(value);
dispatch("share", {
description: formatted
});
} catch (e) {
console.error(e);
let message = e instanceof ShareError ? e.message : "Share failed.";
dispatch("error", message);
} finally {
pending = false;
}
}}
/>
|