mirror of
https://github.com/roleypoly/roleypoly.git
synced 2025-04-25 11:59:11 +00:00
* try editor as preview * add databinding for editor actions and message * add actions, reordering base interactions * add drag and drop ordering for categoriers * category skeleton * fix linting issues * add role list and add button, non-functional * bump packages * add role search prototype * yarn.lock sync * fix lint * remove cfw-emulator bin
37 lines
1.3 KiB
TypeScript
37 lines
1.3 KiB
TypeScript
import { palette } from '@roleypoly/design-system/atoms/colors';
|
|
import { FaderOpacity } from '@roleypoly/design-system/atoms/fader';
|
|
import { MultilineTextInput } from '@roleypoly/design-system/atoms/text-input';
|
|
import {
|
|
AmbientLarge,
|
|
Text as TextTypo,
|
|
} from '@roleypoly/design-system/atoms/typography';
|
|
import { MessageBox } from '@roleypoly/design-system/organisms/role-picker/RolePicker.styled';
|
|
import { GuildSlug } from '@roleypoly/types';
|
|
import { GoEyeClosed } from 'react-icons/go';
|
|
|
|
type Props = {
|
|
guild: GuildSlug;
|
|
onChange: (newMessage: string) => void;
|
|
value: string;
|
|
};
|
|
|
|
export const EditableServerMessage = (props: Props) => (
|
|
<MessageBox>
|
|
<TextTypo>Server Message</TextTypo>
|
|
<MultilineTextInput
|
|
rows={2}
|
|
value={props.value}
|
|
onChange={(event) => props.onChange(event.target.value)}
|
|
placeholder={`Hey friend from ${props.guild.name}! Pick your roles!`}
|
|
>
|
|
{props.value}
|
|
</MultilineTextInput>
|
|
<AmbientLarge style={{ display: 'flex', color: palette.taupe600 }}>
|
|
Shows a message to your server members.
|
|
<FaderOpacity isVisible={props.value.trim().length === 0}>
|
|
Since the message is empty, this won't show up.
|
|
<GoEyeClosed style={{ position: 'relative', top: 2 }} />
|
|
</FaderOpacity>
|
|
</AmbientLarge>
|
|
</MessageBox>
|
|
);
|