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
34 lines
799 B
TypeScript
34 lines
799 B
TypeScript
import { observer } from "mobx-react";
|
|
import * as React from "react";
|
|
import styled from "styled-components";
|
|
import Toast from "~/components/Toast";
|
|
import useStores from "~/hooks/useStores";
|
|
import { Toast as TToast } from "~/types";
|
|
|
|
function Toasts() {
|
|
const { toasts } = useStores();
|
|
return (
|
|
<List>
|
|
{toasts.orderedData.map((toast: TToast) => (
|
|
<Toast
|
|
key={toast.id}
|
|
toast={toast}
|
|
onRequestClose={() => toasts.hideToast(toast.id)}
|
|
/>
|
|
))}
|
|
</List>
|
|
);
|
|
}
|
|
|
|
const List = styled.ol`
|
|
position: fixed;
|
|
left: ${(props) => props.theme.hpadding};
|
|
bottom: ${(props) => props.theme.vpadding};
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
z-index: ${(props) => props.theme.depths.toasts};
|
|
`;
|
|
|
|
export default observer(Toasts);
|