added fonts and icons

This commit is contained in:
Fedor Katurov 2023-04-25 11:10:33 +06:00
parent 1377d25403
commit d7a09b2729
20 changed files with 694 additions and 18 deletions

View file

@ -1,5 +1,12 @@
import { FC, PropsWithChildren } from "react";
import styles from "./styles.module.scss";
import { IconButton } from "~/components/buttons/IconButton";
import DeleteIcon from "~/assets/images/delete.svg";
import SplitVertical from "~/assets/images/split-vertical.svg";
import SplitHorizontal from "~/assets/images/split-horizontal.svg";
console.log(DeleteIcon);
type GridLayoutItemWrapperProps = PropsWithChildren & {
splitVertical: () => void;
@ -15,15 +22,23 @@ const GridLayoutItemWrapper: FC<GridLayoutItemWrapperProps> = ({
}) => (
<div className={styles.wrapper}>
<div className={styles.menu}>
<button onClick={splitVertical} role="button">
v
</button>
<button onClick={splitHorizontal} role="button">
h
</button>
<button onClick={remove} role="button">
d
</button>
<IconButton
onClick={splitVertical}
role="button"
className={styles.button}
>
<SplitVertical />
</IconButton>
<IconButton
onClick={splitHorizontal}
role="button"
className={styles.button}
>
<SplitHorizontal />
</IconButton>
<IconButton onClick={remove} role="button" className={styles.button}>
<DeleteIcon />
</IconButton>
</div>
{children}

View file

@ -9,3 +9,20 @@
top: 0;
right: 0;
}
.button {
opacity: 0.3;
cursor: pointer;
padding: 4px 2px;
transition: opacity 0.25s;
&:hover {
opacity: 1;
}
svg {
width: 16px;
height: 16px;
fill: currentColor;
}
}

View file

@ -1,7 +1,5 @@
import { useEffect, useState } from "react";
const prefix = "VALUE__";
const safelyGetStringValue = (key: string) => {
try {
return localStorage.getItem(key) ?? "";
@ -19,7 +17,8 @@ const safelySetStringValue = (key: string, value: string) => {
};
export const usePersistedValue = (
id: string
id: string,
prefix: string
): [string, (val: string) => void] => {
const key = `${prefix}${id}`;
const [value, setValue] = useState(safelyGetStringValue(key));

View file

@ -11,7 +11,7 @@ interface MarkdownEditorContainerProps {
export const MarkdownEditorContainer: FC<MarkdownEditorContainerProps> = ({
id,
}) => {
const [value, setValue] = usePersistedValue(id);
const [value, setValue] = usePersistedValue(id, "MarkdownEditorContainer");
return (
<div className={styles.editor}>