import { For, Match, Switch } from "solid-js"; import { Trans } from "@lingui-solid/solid/macro"; import { styled } from "styled-system/jsx"; import { Checkbox, Column, Dialog, DialogProps, Row } from "@revolt/ui"; import { Modals } from "../types"; export function UserProfileRolesModal( props: DialogProps & Modals & { type: "user_profile_roles" }, ) { const editMode = () => props.member.server?.owner?.self || (props.member.server?.havePermission("AssignRoles") && props.member.inferiorTo(props.member.server.member!)); return ( {props.member.displayName}'s roles}> Edit {props.member.displayName}'s roles } actions={[{ text: Close }]} > {(role) => ( {role.name} )} } > {(role) => ( props.member.edit({ roles: [ ...props.member.roles.filter( (roleId) => roleId !== role.id, ), ...(props.member.roles.includes(role.id) ? [] : [role.id]), ], }) } > {role.name} )} ); } const RoleName = styled("span", { base: { flexGrow: 1, overflow: "hidden", whiteSpace: "nowrap", textOverflow: "ellipsis", }, }); const RoleIcon = styled("div", { base: { width: "16px", height: "16px", aspectRatio: "1/1", borderRadius: "100%", }, });