import React, { useState } from 'react'; import { LanguageOption } from '../Panel/Panel.types'; import { languageOptions } from '../testing/Code.testutils'; import { Language } from '../types'; import Code, { Panel } from '..'; const jsSnippet = ` function greeting(entity) { return \`Hello, \${entity}! Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta felis euismod semper.\`; } console.log(greeting('World')); `; const pythonSnippet = ` def greeting(entity): return "Hello {} Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta felis euismod semper.".format(entity) print (greeting("World")) `; const shellSnippet = ` #!/bin/sh echo "Hello world" `; const snippetMap = { [Language.JavaScript]: jsSnippet, [Language.Python]: pythonSnippet, [Language.Shell]: shellSnippet, }; export function LanguageSwitcherWithPanelExample({ onChange, customActionButtons = [], showCustomActionButtons = true, ...rest }: { onChange?: Function; customActionButtons?: Array; showCustomActionButtons?: boolean; }) { const [language, setLanguage] = useState(languageOptions[0]); const handleChange = (languageObject: LanguageOption) => { setLanguage(languageObject); onChange?.(languageObject); }; const languageIndex = language.language; return ( } > {snippetMap[languageIndex as 'javascript' | 'python' | 'shell']} ); }