From 3bca1efce7233dee0da22810a7cf82e8a03ddf39 Mon Sep 17 00:00:00 2001 From: HichamELBSI Date: Wed, 27 May 2020 12:21:41 +0200 Subject: [PATCH] Init permission tabs Signed-off-by: HichamELBSI --- .../Roles/CollectionTypesPermissions/index.js | 12 ++++++ .../Roles/PluginsPermissions/index.js | 12 ++++++ .../Roles/SettingsPermissions/index.js | 12 ++++++ .../Roles/SingleTypesPermissions/index.js | 12 ++++++ .../admin/src/components/Roles/Tabs/Tab.js | 19 +++++++++ .../src/components/Roles/Tabs/TabsWrapper.js | 9 ++++ .../admin/src/components/Roles/Tabs/index.js | 41 +++++++++++++++++++ .../admin/src/components/Roles/index.js | 5 +++ .../src/containers/Roles/CreatePage/index.js | 16 ++++++++ 9 files changed, 138 insertions(+) create mode 100644 packages/strapi-admin/admin/src/components/Roles/CollectionTypesPermissions/index.js create mode 100644 packages/strapi-admin/admin/src/components/Roles/PluginsPermissions/index.js create mode 100644 packages/strapi-admin/admin/src/components/Roles/SettingsPermissions/index.js create mode 100644 packages/strapi-admin/admin/src/components/Roles/SingleTypesPermissions/index.js create mode 100644 packages/strapi-admin/admin/src/components/Roles/Tabs/Tab.js create mode 100644 packages/strapi-admin/admin/src/components/Roles/Tabs/TabsWrapper.js create mode 100644 packages/strapi-admin/admin/src/components/Roles/Tabs/index.js diff --git a/packages/strapi-admin/admin/src/components/Roles/CollectionTypesPermissions/index.js b/packages/strapi-admin/admin/src/components/Roles/CollectionTypesPermissions/index.js new file mode 100644 index 0000000000..231b5caf0e --- /dev/null +++ b/packages/strapi-admin/admin/src/components/Roles/CollectionTypesPermissions/index.js @@ -0,0 +1,12 @@ +import React from 'react'; +import { Padded, Flex } from '@buffetjs/core'; + +const CollectionTypesPermissions = () => ( + + + COLLECTION TYPES PERMISSIONS COMMING SOON + + +); + +export default CollectionTypesPermissions; diff --git a/packages/strapi-admin/admin/src/components/Roles/PluginsPermissions/index.js b/packages/strapi-admin/admin/src/components/Roles/PluginsPermissions/index.js new file mode 100644 index 0000000000..f9489f508d --- /dev/null +++ b/packages/strapi-admin/admin/src/components/Roles/PluginsPermissions/index.js @@ -0,0 +1,12 @@ +import React from 'react'; +import { Padded, Flex } from '@buffetjs/core'; + +const PluginsPermissions = () => ( + + + PLUGINS PERMISSIONS COMMING SOON + + +); + +export default PluginsPermissions; diff --git a/packages/strapi-admin/admin/src/components/Roles/SettingsPermissions/index.js b/packages/strapi-admin/admin/src/components/Roles/SettingsPermissions/index.js new file mode 100644 index 0000000000..726f428d3f --- /dev/null +++ b/packages/strapi-admin/admin/src/components/Roles/SettingsPermissions/index.js @@ -0,0 +1,12 @@ +import React from 'react'; +import { Padded, Flex } from '@buffetjs/core'; + +const SettingsPermissions = () => ( + + + SETTINGS PERMISSIONS COMMING SOON + + +); + +export default SettingsPermissions; diff --git a/packages/strapi-admin/admin/src/components/Roles/SingleTypesPermissions/index.js b/packages/strapi-admin/admin/src/components/Roles/SingleTypesPermissions/index.js new file mode 100644 index 0000000000..f3c01edeea --- /dev/null +++ b/packages/strapi-admin/admin/src/components/Roles/SingleTypesPermissions/index.js @@ -0,0 +1,12 @@ +import React from 'react'; +import { Padded, Flex } from '@buffetjs/core'; + +const SingleTypesPermissions = () => ( + + + SINGLE TYPES PERMISSIONS COMMING SOON + + +); + +export default SingleTypesPermissions; diff --git a/packages/strapi-admin/admin/src/components/Roles/Tabs/Tab.js b/packages/strapi-admin/admin/src/components/Roles/Tabs/Tab.js new file mode 100644 index 0000000000..bf874e24d7 --- /dev/null +++ b/packages/strapi-admin/admin/src/components/Roles/Tabs/Tab.js @@ -0,0 +1,19 @@ +import styled from 'styled-components'; + +const Tab = styled.div` + flex: 1; + padding: 1rem; + text-align: center; + ${({ isActive, theme }) => + isActive + ? { + borderTop: `2px solid ${theme.main.colors.blue}`, + backgroundColor: theme.main.colors.white, + } + : { + backgroundColor: '#f2f3f4', + cursor: 'pointer', + }} +`; + +export default Tab; diff --git a/packages/strapi-admin/admin/src/components/Roles/Tabs/TabsWrapper.js b/packages/strapi-admin/admin/src/components/Roles/Tabs/TabsWrapper.js new file mode 100644 index 0000000000..d91e491929 --- /dev/null +++ b/packages/strapi-admin/admin/src/components/Roles/Tabs/TabsWrapper.js @@ -0,0 +1,9 @@ +import styled from 'styled-components'; + +const TabsWrapper = styled.div` + display: block; + border-radius: ${({ theme }) => theme.main.sizes.borderRadius}; + box-shadow: ${({ theme }) => `0px 2px 4px 0px ${theme.main.colors.darkGrey}`}; +`; + +export default TabsWrapper; diff --git a/packages/strapi-admin/admin/src/components/Roles/Tabs/index.js b/packages/strapi-admin/admin/src/components/Roles/Tabs/index.js new file mode 100644 index 0000000000..20065ee117 --- /dev/null +++ b/packages/strapi-admin/admin/src/components/Roles/Tabs/index.js @@ -0,0 +1,41 @@ +import React, { useState } from 'react'; +import { Flex, Text } from '@buffetjs/core'; +import PropTypes from 'prop-types'; + +import TabsWrapper from './TabsWrapper'; +import Tab from './Tab'; + +const Tabs = ({ children, tabsLabel }) => { + const [selectedTabIndex, setSelectedTabIndex] = useState(0); + + const handleSelectedTab = index => { + if (index !== selectedTabIndex) { + setSelectedTabIndex(index); + } + }; + + return ( + + + {tabsLabel.map((tab, index) => ( + handleSelectedTab(index)} + isActive={index === selectedTabIndex} + > + {tab} + + ))} + + {children && children[selectedTabIndex]} + + ); +}; + +Tabs.propTypes = { + children: PropTypes.node.isRequired, + tabsLabel: PropTypes.array.isRequired, +}; + +export default Tabs; diff --git a/packages/strapi-admin/admin/src/components/Roles/index.js b/packages/strapi-admin/admin/src/components/Roles/index.js index cd7f6d8a8c..21322175ef 100644 --- a/packages/strapi-admin/admin/src/components/Roles/index.js +++ b/packages/strapi-admin/admin/src/components/Roles/index.js @@ -1,3 +1,8 @@ export { default as RoleDescription } from './RoleDescription'; export { default as RoleListWrapper } from './RoleListWrapper'; export { default as RoleRow } from './RoleRow'; +export { default as Tabs } from './Tabs'; +export { default as SingleTypesPermissions } from './SingleTypesPermissions'; +export { default as CollectionTypesPermissions } from './CollectionTypesPermissions'; +export { default as PluginsPermissions } from './PluginsPermissions'; +export { default as SettingsPermissions } from './SettingsPermissions'; diff --git a/packages/strapi-admin/admin/src/containers/Roles/CreatePage/index.js b/packages/strapi-admin/admin/src/containers/Roles/CreatePage/index.js index 350ded3ca2..127150443a 100644 --- a/packages/strapi-admin/admin/src/containers/Roles/CreatePage/index.js +++ b/packages/strapi-admin/admin/src/containers/Roles/CreatePage/index.js @@ -8,6 +8,13 @@ import FormCard from './FormCard'; import ButtonWithNumber from './ButtonWithNumber'; import InputWrapper from './InputWrapper'; import schema from './utils/schema'; +import { + Tabs, + CollectionTypesPermissions, + SingleTypesPermissions, + PluginsPermissions, + SettingsPermissions, +} from '../../../components/Roles'; const CreatePage = () => { const { formatMessage } = useIntl(); @@ -106,6 +113,15 @@ const CreatePage = () => { + + + + + + + + + )}