mirror of
https://github.com/roleypoly/roleypoly.git
synced 2025-06-15 17:19:10 +00:00
feat: add access control
This commit is contained in:
parent
9c07ff0e54
commit
3f45153b66
47 changed files with 1084 additions and 164 deletions
|
@ -20,7 +20,7 @@ export const Container = styled.div<ContainerProps>`
|
|||
text-align: center;
|
||||
line-height: 1;
|
||||
overflow: hidden;
|
||||
font-size: ${(props: ContainerProps) => props.size};
|
||||
font-size: ${(props: ContainerProps) => (props.size || 48) * 0.45}px;
|
||||
${(props) =>
|
||||
props.deliberatelyEmpty &&
|
||||
css`
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
import { IconHelper } from './IconHelper';
|
||||
|
||||
export default {
|
||||
title: 'Atoms/Icon Helper',
|
||||
component: IconHelper,
|
||||
};
|
||||
|
||||
export const iconHelper = (args) => <IconHelper {...args} />;
|
|
@ -0,0 +1,21 @@
|
|||
import { palette } from '@roleypoly/design-system/atoms/colors';
|
||||
import styled from 'styled-components';
|
||||
|
||||
const levelColors = {
|
||||
error: palette.red400,
|
||||
warn: palette.gold400,
|
||||
info: palette.discord400,
|
||||
chrome: palette.taupe400,
|
||||
success: palette.green400,
|
||||
none: 'unset',
|
||||
};
|
||||
|
||||
export type IconHelperLevel = keyof typeof levelColors;
|
||||
|
||||
export const IconHelperStyled = styled.span<{
|
||||
level: IconHelperLevel;
|
||||
}>`
|
||||
position: relative;
|
||||
top: 0.12em;
|
||||
color: ${(props) => levelColors[props.level]};
|
||||
`;
|
7
packages/design-system/atoms/icon-helper/IconHelper.tsx
Normal file
7
packages/design-system/atoms/icon-helper/IconHelper.tsx
Normal file
|
@ -0,0 +1,7 @@
|
|||
import React from 'react';
|
||||
import { IconHelperLevel, IconHelperStyled } from './IconHelper.styled';
|
||||
|
||||
export const IconHelper = (props: {
|
||||
children: React.ReactNode;
|
||||
level?: IconHelperLevel;
|
||||
}) => <IconHelperStyled level={props.level || 'none'}>{props.children}</IconHelperStyled>;
|
1
packages/design-system/atoms/icon-helper/index.ts
Normal file
1
packages/design-system/atoms/icon-helper/index.ts
Normal file
|
@ -0,0 +1 @@
|
|||
export * from './IconHelper';
|
|
@ -82,6 +82,10 @@ export const Role = (props: Props) => {
|
|||
|
||||
const disabledReason = (role: RPCRole) => {
|
||||
switch (role.safety) {
|
||||
case RoleSafety.ManagedRole:
|
||||
return 'This role is managed by an integration/bot.';
|
||||
case RoleSafety.AccessControl:
|
||||
return 'This role is part of the allow/block list for the server.';
|
||||
case RoleSafety.HigherThanBot:
|
||||
return `This role is above Roleypoly's own role.`;
|
||||
case RoleSafety.DangerousPermissions:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue