58 lines
2.1 KiB
TypeScript
58 lines
2.1 KiB
TypeScript
/* eslint-disable react/prop-types */
|
||
import React, {useCallback} from 'react';
|
||
import {FormattedMessage, useIntl} from 'react-intl';
|
||
|
||
type Props = {
|
||
id: string;
|
||
value: string;
|
||
disabled: boolean;
|
||
onChange: (id: string, value: any) => void;
|
||
setSaveNeeded: () => void;
|
||
config: any;
|
||
license: any;
|
||
setByEnv: boolean;
|
||
registerSaveAction: (action: () => Promise<{error?: {message?: string}}>) => void;
|
||
unRegisterSaveAction: (action: () => Promise<{error?: {message?: string}}>) => void;
|
||
}
|
||
|
||
const BadgesAdminSetting: React.FC<Props> = ({id, value, disabled, onChange, setSaveNeeded}) => {
|
||
const intl = useIntl();
|
||
|
||
const handleChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {
|
||
onChange(id, e.target.value);
|
||
setSaveNeeded();
|
||
}, [id, onChange, setSaveNeeded]);
|
||
|
||
return (
|
||
<div className='form-group'>
|
||
<label className='control-label col-sm-4'>
|
||
<FormattedMessage
|
||
id='badges.admin.label'
|
||
defaultMessage='Администратор достижений:'
|
||
/>
|
||
</label>
|
||
<div className='col-sm-8'>
|
||
<input
|
||
className='form-control'
|
||
type='text'
|
||
value={value || ''}
|
||
disabled={disabled}
|
||
onChange={handleChange}
|
||
placeholder={intl.formatMessage({
|
||
id: 'badges.admin.placeholder',
|
||
defaultMessage: 'username',
|
||
})}
|
||
/>
|
||
<div className='help-text'>
|
||
<FormattedMessage
|
||
id='badges.admin.help_text'
|
||
defaultMessage='Этот пользователь будет считаться администратором плагина достижений. Он может создавать типы, а также изменять и выдавать любые значки.'
|
||
/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
);
|
||
};
|
||
|
||
export default BadgesAdminSetting;
|