strapi-plugin-i18n
Version:
This plugin enables to create, to read and to update content in different languages, both from the Admin Panel and from the API
70 lines (61 loc) • 1.87 kB
JavaScript
import React, { useState } from 'react';
import PropTypes from 'prop-types';
import { useIntl } from 'react-intl';
import { BaselineAlignment } from 'strapi-helper-plugin';
import { Header } from '@buffetjs/custom';
import { Button } from '@buffetjs/core';
import { getTrad } from '../../utils';
import LocaleList from '../../components/LocaleList';
const LocaleSettingsPage = ({
canReadLocale,
canCreateLocale,
canDeleteLocale,
canUpdateLocale,
}) => {
const { formatMessage } = useIntl();
const [isOpenedCreateModal, setIsOpenedCreateModal] = useState(false);
const handleToggleModalCreate = canCreateLocale
? () => setIsOpenedCreateModal(s => !s)
: undefined;
const actions = [
{
label: formatMessage({ id: getTrad('Settings.list.actions.add') }),
onClick: handleToggleModalCreate,
color: 'primary',
type: 'button',
icon: true,
Component: props => (canCreateLocale ? <Button {...props} /> : null),
style: {
paddingLeft: 15,
paddingRight: 15,
},
},
];
return (
<>
<Header
title={{
label: formatMessage({ id: getTrad('plugin.name') }),
}}
content={formatMessage({ id: getTrad('Settings.list.description') })}
actions={actions}
/>
<BaselineAlignment top size="3px" />
{canReadLocale ? (
<LocaleList
canUpdateLocale={canUpdateLocale}
canDeleteLocale={canDeleteLocale}
onToggleCreateModal={handleToggleModalCreate}
isCreating={isOpenedCreateModal}
/>
) : null}
</>
);
};
LocaleSettingsPage.propTypes = {
canReadLocale: PropTypes.bool.isRequired,
canCreateLocale: PropTypes.bool.isRequired,
canUpdateLocale: PropTypes.bool.isRequired,
canDeleteLocale: PropTypes.bool.isRequired,
};
export default LocaleSettingsPage;