feat(permission): implement new server / channel permission menus

This commit is contained in:
Paul Makles
2022-02-27 23:44:29 +00:00
parent 3632b6b351
commit 041c039827
17 changed files with 587 additions and 311 deletions

View File

@@ -0,0 +1,33 @@
import { OverrideField } from "revolt-api/types/_common";
import { Permission } from "revolt.js";
import { PermissionSelect } from "./PermissionSelect";
interface Props {
value: OverrideField | number;
onChange: (v: OverrideField | number) => void;
filter?: (keyof typeof Permission)[];
}
export function PermissionList({ value, onChange, filter }: Props) {
return (
<>
{(Object.keys(Permission) as (keyof typeof Permission)[])
.filter(
(key) =>
key !== "GrantAllSafe" &&
(!filter || filter.includes(key)),
)
.map((x) => (
<PermissionSelect
id={x}
key={x}
permission={Permission[x]}
value={value}
onChange={onChange}
/>
))}
</>
);
}