import { ClipboardService } from '@theia/core/lib/browser/clipboard-service'; import { DialogProps } from '@theia/core/lib/browser/dialogs'; import { TreeNode } from '@theia/core/lib/browser/tree/tree'; import { ReactWidget } from '@theia/core/lib/browser/widgets/react-widget'; import { nls } from '@theia/core/lib/common/nls'; import { MaybePromise } from '@theia/core/lib/common/types'; import { Message } from '@theia/core/shared/@phosphor/messaging'; import { Widget } from '@theia/core/shared/@phosphor/widgets'; import React from '@theia/core/shared/react'; import { CreateApi } from '../create/create-api'; import { AbstractDialog } from '../theia/dialogs/dialogs'; const RadioButton = (props: { id: string; changed: (evt: React.BaseSyntheticEvent) => void; value: string; isSelected: boolean; isDisabled: boolean; label: string; }) => { return (

); }; export const ShareSketchComponent = ({ treeNode, createApi, domain = 'https://create.arduino.cc', writeClipboard, }: { // eslint-disable-next-line @typescript-eslint/no-explicit-any treeNode: any; createApi: CreateApi; domain?: string; writeClipboard: (text: string) => MaybePromise; }): React.ReactElement => { const [loading, setLoading] = React.useState(false); const radioChangeHandler = async (event: React.BaseSyntheticEvent) => { setLoading(true); const sketch = await createApi.editSketch({ id: treeNode.sketchId, params: { is_public: event.target.value === 'private' ? false : true, }, }); // setPublicVisibility(sketch.is_public); treeNode.isPublic = sketch.is_public; setLoading(false); }; const sketchLink = `${domain}/editor/_/${treeNode.sketchId}/preview`; const embedLink = ``; return (

{nls.localize( 'arduino/cloud/chooseSketchVisibility', 'Choose visibility of your Sketch:' )}

{treeNode.isPublic && (

{nls.localize('arduino/cloud/link', 'Link:')}

{nls.localize('arduino/cloud/embed', 'Embed:')}