mirror of
https://github.com/pawelmalak/flame.git
synced 2025-07-19 11:39:36 +02:00
Moved table actions to separate component
This commit is contained in:
parent
f963c1980b
commit
089ace562a
2 changed files with 91 additions and 0 deletions
12
client/src/components/Actions/TableActions.module.css
Normal file
12
client/src/components/Actions/TableActions.module.css
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
.TableActions {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.TableAction {
|
||||||
|
width: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.TableAction:hover {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
79
client/src/components/Actions/TableActions.tsx
Normal file
79
client/src/components/Actions/TableActions.tsx
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
import { Icon } from '../UI';
|
||||||
|
import classes from './TableActions.module.css';
|
||||||
|
|
||||||
|
interface Entity {
|
||||||
|
id: number;
|
||||||
|
name: string;
|
||||||
|
isPinned: boolean;
|
||||||
|
isPublic: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
entity: Entity;
|
||||||
|
deleteHandler: (id: number, name: string) => void;
|
||||||
|
updateHandler: (id: number) => void;
|
||||||
|
pinHanlder: (id: number) => void;
|
||||||
|
changeVisibilty: (id: number) => void;
|
||||||
|
showPin?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const TableActions = (props: Props): JSX.Element => {
|
||||||
|
const {
|
||||||
|
entity,
|
||||||
|
deleteHandler,
|
||||||
|
updateHandler,
|
||||||
|
pinHanlder,
|
||||||
|
changeVisibilty,
|
||||||
|
showPin = true,
|
||||||
|
} = props;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<td className={classes.TableActions}>
|
||||||
|
{/* DELETE */}
|
||||||
|
<div
|
||||||
|
className={classes.TableAction}
|
||||||
|
onClick={() => deleteHandler(entity.id, entity.name)}
|
||||||
|
tabIndex={0}
|
||||||
|
>
|
||||||
|
<Icon icon="mdiDelete" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* UPDATE */}
|
||||||
|
<div
|
||||||
|
className={classes.TableAction}
|
||||||
|
onClick={() => updateHandler(entity.id)}
|
||||||
|
tabIndex={0}
|
||||||
|
>
|
||||||
|
<Icon icon="mdiPencil" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* PIN */}
|
||||||
|
{showPin && (
|
||||||
|
<div
|
||||||
|
className={classes.TableAction}
|
||||||
|
onClick={() => pinHanlder(entity.id)}
|
||||||
|
tabIndex={0}
|
||||||
|
>
|
||||||
|
{entity.isPinned ? (
|
||||||
|
<Icon icon="mdiPinOff" color="var(--color-accent)" />
|
||||||
|
) : (
|
||||||
|
<Icon icon="mdiPin" />
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
|
{/* VISIBILITY */}
|
||||||
|
<div
|
||||||
|
className={classes.TableAction}
|
||||||
|
onClick={() => changeVisibilty(entity.id)}
|
||||||
|
tabIndex={0}
|
||||||
|
>
|
||||||
|
{entity.isPublic ? (
|
||||||
|
<Icon icon="mdiEyeOff" color="var(--color-accent)" />
|
||||||
|
) : (
|
||||||
|
<Icon icon="mdiEye" />
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
);
|
||||||
|
};
|
Loading…
Add table
Add a link
Reference in a new issue