in frontend/src/components/teamsAndOrgs/messageMembers.js [11:93]
export function MessageMembers({ teamId }: Object) {
const token = useSelector((state) => state.auth.get('token'));
const [message, setMessage] = useState('');
const [subject, setSubject] = useState('');
const [status, setStatus] = useState(null);
const sendMessage = () => {
if (message && subject && token) {
setStatus('sending');
pushToLocalJSONAPI(
`teams/${teamId}/actions/message-members/`,
JSON.stringify({ message: message, subject: subject }),
token,
'POST',
)
.then((res) => {
setStatus('messageSent');
setMessage('');
setSubject('');
})
.catch((e) => setStatus('error'));
}
};
return (
<>
<div className={`bg-white b--grey-light pa4 ${message ? 'bt bl br' : 'ba'}`}>
<div className="cf db">
<h3 className="f3 blue-dark mt0 fw6 fl">
<FormattedMessage {...messages.messageMembers} />
</h3>
</div>
{(message || subject) && (
<div className="cf mb1">
<FormattedMessage {...messages.subjectPlaceholder}>
{(msg) => {
return (
<input
value={subject}
onChange={(e) => setSubject(e.target.value)}
name="subject"
className="db center pa2 w-100 fl mb3"
type="text"
placeholder={msg}
/>
);
}}
</FormattedMessage>
</div>
)}
<div className="cf mb1">
<CommentInputField comment={message} setComment={setMessage} />
</div>
{!message && <MessageStatus status={status} />}
</div>
{(message || subject) && (
<div className="cf pt0">
<div className="w-70-l w-50 fl tr dib bg-grey-light">
<Button
className="blue-dark bg-grey-light h3"
onClick={() => {
setMessage('');
setSubject('');
setStatus(null);
}}
>
<FormattedMessage {...messages.cancel} />
</Button>
</div>
<div className="w-30-l w-50 fr dib">
<Button
className="white bg-primary h3 w-100"
onClick={() => sendMessage()}
disabled={!message || !subject}
>
<FormattedMessage {...messages.send} />
</Button>
</div>
</div>
)}
</>
);
}