export function CodeBlock()

in src/components/HomepageFeatures/index.tsx [222:302]


export function CodeBlock(): JSX.Element {
  const [pythonCode, setPythonCode]=useState('r = redis.Redis(host=\'localhost\', port=6666, decode_responses=True)\n' +
      '\n' +
      'r.set(\'username\', \'kvrocks\')\n' +
      '# True\n' +
      'r.get(\'username\')\n' +
      '# kvrocks\n')
  const [javaCode, setJavaCode]=useState('package org.example;\n\n' +
      'import redis.clients.jedis.Jedis;\n' +
      'import redis.clients.jedis.JedisPool;\n' +
      '\n' +
      'JedisPool pool = new JedisPool("127.0.0.1", 6666);\n' +
      '\n' +
      'try (Jedis jedis = pool.getResource()) {\n' +
      '\tjedis.set("username", "kvrocks");\n' +
      '  System.out.println(jedis.get("username"));\n' +
      '}\n')
  const [golangCode, setGolangCode]=useState('import (\n' +
      '\t"context"\n' +
      '\t"fmt"\n' +
      '\t"github.com/redis/go-redis/v9"\n' +
      ')\n' +
      '\n' +
      'client := redis.NewClient(&redis.Options{\n' +
      '\tAddr:\t  "localhost:6666",\n' +
      '})\n' +
      '\n' +
      'err := client.Set(ctx, "username", "kvrocks", 0).Err()\n' +
      'if err != nil {\n' +
      '    panic(err)\n' +
      '}\n' +
      '\n' +
      'val, err := client.Get(ctx, "username").Result()\n' +
      'if err != nil {\n' +
      '    panic(err)\n' +
      '}\n\n' +
      'fmt.Println("username", val)\n')
  const [code, setCode]=useState(javaCode)
  const [current, setCurrent] = useState('java');
  const onClick: MenuProps['onClick'] = (e) => {
    console.log('click ', e);
    setCurrent(e.key);
    if (e.key=="python"){
      setCode(pythonCode)
    }
    else if(e.key=="java"){
      setCode(javaCode)
    }
    else if(e.key=="golang"){
      setCode(golangCode)
    }
  }
  const items: MenuProps['items'] = [
    {label: 'Java',key: 'java'},
    {label: 'Go',key: 'golang'},
    {label: 'Python3',key: 'python'}]
  return (
    <div style={{width:"50%"}}>
      <Menu onClick={onClick} selectedKeys={[current]} mode="horizontal" items={items} />
      <AceEditor
          mode="python"
          theme="monokai"
          name="blah2"
          fontSize={14}
          showPrintMargin={true}
          showGutter={true}
          highlightActiveLine={true}
          value={code}
          readOnly={true}
          setOptions={{
            enableBasicAutocompletion: false,
            enableLiveAutocompletion: false,
            enableSnippets: false,
            showLineNumbers: true,
            useWorker:false,
            tabSize: 2
          }}
          style={{marginTop:"10px",height:"400px",width:"100%"}}/>
    </div>
  )
}