Migrate CreateServer component to Typescript

This commit is contained in:
Alejandro Celaya
2020-08-22 17:58:44 +02:00
parent 2db85c2783
commit 7c67fa4149
7 changed files with 88 additions and 46 deletions

View File

@@ -7,16 +7,20 @@ type Ref<T> = RefObject<T> | MutableRefObject<T>;
export interface ImportServersBtnProps {
onImport?: () => void;
onImportError?: () => void;
}
interface ImportServersBtnConnectProps {
interface ImportServersBtnConnectProps extends ImportServersBtnProps {
createServers: (servers: Server[]) => void;
fileRef: Ref<HTMLInputElement>;
}
const ImportServersBtn = ({ importServersFromFile }: ServersImporter) => (
{ createServers, fileRef, onImport = () => {} }: ImportServersBtnConnectProps & ImportServersBtnProps,
) => {
const ImportServersBtn = ({ importServersFromFile }: ServersImporter) => ({
createServers,
fileRef,
onImport = () => {},
onImportError = () => {},
}: ImportServersBtnConnectProps) => {
const ref = fileRef ?? useRef<HTMLInputElement>();
const onChange = async ({ target }: ChangeEvent<HTMLInputElement>) =>
importServersFromFile(target.files?.[0])
@@ -25,7 +29,8 @@ const ImportServersBtn = ({ importServersFromFile }: ServersImporter) => (
.then(() => {
// Reset input after processing file
(target as { value: string | null }).value = null;
});
})
.catch(onImportError);
return (
<React.Fragment>