mirror of https://github.com/msgbyte/tailchat
feat: 创建话题
parent
21f6442634
commit
0f58129c74
@ -1,7 +1,7 @@
|
||||
const path = require('path');
|
||||
|
||||
module.exports = {
|
||||
externalDeps: ['react'],
|
||||
externalDeps: ['react', 'styled-components'],
|
||||
pluginRoot: path.resolve(__dirname, './web'),
|
||||
outDir: path.resolve(__dirname, '../../public'),
|
||||
};
|
||||
|
@ -0,0 +1,33 @@
|
||||
import { useAsyncRequest } from '@capital/common';
|
||||
import { Button, ModalWrapper, TextArea } from '@capital/component';
|
||||
import React, { useState } from 'react';
|
||||
import styled from 'styled-components';
|
||||
import { Translate } from '../../translate';
|
||||
|
||||
const Footer = styled.div({
|
||||
textAlign: 'right',
|
||||
paddingTop: 10,
|
||||
});
|
||||
|
||||
export const TopicCreate: React.FC<{
|
||||
onCreate: (text: string) => Promise<void>;
|
||||
}> = React.memo((props) => {
|
||||
const [text, setText] = useState('');
|
||||
|
||||
const [{ loading }, handleCreate] = useAsyncRequest(async () => {
|
||||
await props.onCreate(text);
|
||||
}, [text]);
|
||||
|
||||
return (
|
||||
<ModalWrapper title={Translate.createBtn}>
|
||||
<TextArea value={text} onChange={(e) => setText(e.target.value)} />
|
||||
|
||||
<Footer>
|
||||
<Button type="primary" loading={loading} onClick={handleCreate}>
|
||||
{Translate.createBtn}
|
||||
</Button>
|
||||
</Footer>
|
||||
</ModalWrapper>
|
||||
);
|
||||
});
|
||||
TopicCreate.displayName = 'TopicCreate';
|
Loading…
Reference in New Issue