This PR moves the entire project to Typescript. Due to the ~1000 ignores this will lead to a messy codebase for a while, but the churn is worth it – all of those ignore comments are places that were never type-safe previously. closes #1282
36 lines
840 B
TypeScript
36 lines
840 B
TypeScript
import { observer } from "mobx-react-lite";
|
|
import * as React from "react";
|
|
import Guide from "~/components/Guide";
|
|
import Modal from "~/components/Modal";
|
|
import useStores from "~/hooks/useStores";
|
|
|
|
function Dialogs() {
|
|
const { dialogs } = useStores();
|
|
const { guide, modalStack } = dialogs;
|
|
return (
|
|
<>
|
|
{guide ? (
|
|
<Guide
|
|
isOpen={guide.isOpen}
|
|
onRequestClose={dialogs.closeGuide}
|
|
title={guide.title}
|
|
>
|
|
{guide.content}
|
|
</Guide>
|
|
) : undefined}
|
|
{[...modalStack].map(([id, modal]) => (
|
|
<Modal
|
|
key={id}
|
|
isOpen={modal.isOpen}
|
|
onRequestClose={() => dialogs.closeModal(id)}
|
|
title={modal.title}
|
|
>
|
|
{modal.content}
|
|
</Modal>
|
|
))}
|
|
</>
|
|
);
|
|
}
|
|
|
|
export default observer(Dialogs);
|