From 63df6386307d229077887c8efd44e962b0696893 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 8 Mar 2023 12:00:28 -0600 Subject: [PATCH] Create Group: enforce max limit on description and name --- .../modals/manage-group-modal/steps/details-step.tsx | 6 ++++-- app/soapbox/normalizers/instance.ts | 4 ++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/soapbox/features/ui/components/modals/manage-group-modal/steps/details-step.tsx b/app/soapbox/features/ui/components/modals/manage-group-modal/steps/details-step.tsx index f51be0ae5..2450dffea 100644 --- a/app/soapbox/features/ui/components/modals/manage-group-modal/steps/details-step.tsx +++ b/app/soapbox/features/ui/components/modals/manage-group-modal/steps/details-step.tsx @@ -9,7 +9,7 @@ import { } from 'soapbox/actions/groups'; import Icon from 'soapbox/components/icon'; import { Avatar, Form, FormGroup, HStack, Input, Text, Textarea } from 'soapbox/components/ui'; -import { useAppDispatch, useAppSelector } from 'soapbox/hooks'; +import { useAppDispatch, useAppSelector, useInstance } from 'soapbox/hooks'; import { isDefaultAvatar, isDefaultHeader } from 'soapbox/utils/accounts'; import resizeImage from 'soapbox/utils/resize-image'; @@ -96,6 +96,7 @@ const AvatarPicker: React.FC = ({ src, onChange, accept, disabled } const DetailsStep = () => { const intl = useIntl(); const dispatch = useAppDispatch(); + const instance = useInstance(); const groupId = useAppSelector((state) => state.group_editor.groupId); const isUploading = useAppSelector((state) => state.group_editor.isUploading); @@ -146,7 +147,6 @@ const DetailsStep = () => { }); }, [groupId]); - return (
@@ -161,6 +161,7 @@ const DetailsStep = () => { placeholder={intl.formatMessage(messages.groupNamePlaceholder)} value={name} onChange={onChangeName} + maxLength={Number(instance.configuration.getIn(['groups', 'max_characters_name']))} /> { placeholder={intl.formatMessage(messages.groupDescriptionPlaceholder)} value={description} onChange={onChangeDescription} + maxLength={Number(instance.configuration.getIn(['groups', 'max_characters_description']))} /> diff --git a/app/soapbox/normalizers/instance.ts b/app/soapbox/normalizers/instance.ts index b75f99f9f..3632b9058 100644 --- a/app/soapbox/normalizers/instance.ts +++ b/app/soapbox/normalizers/instance.ts @@ -35,6 +35,10 @@ export const InstanceRecord = ImmutableRecord({ max_characters: 500, max_media_attachments: 4, }), + groups: ImmutableMap({ + max_characters_name: 50, + max_characters_description: 100, + }), }), description: '', description_limit: 1500,