From 7313cbdb419ec4f005568611fe9831194f7ee158 Mon Sep 17 00:00:00 2001 From: soupette Date: Wed, 12 Feb 2020 21:55:56 +0100 Subject: [PATCH 001/492] Init media library. Created OLD folder. Fix load plugin when no Initializer is provided. Signed-off-by: soupette --- .eslintignore | 1 + .../admin/src/containers/Admin/index.js | 11 +++-- .../components/EditForm/Wrapper.js | 0 .../{src => OLD}/components/EditForm/index.js | 0 .../components/EntriesNumber/index.js | 0 .../components/FileIcon/Wrapper.js | 0 .../components/FileIcon/extensions.json | 0 .../{src => OLD}/components/FileIcon/index.js | 0 .../{src => OLD}/components/Li/components.js | 0 .../admin/{src => OLD}/components/Li/index.js | 0 .../{src => OLD}/components/List/EmptyLi.js | 0 .../{src => OLD}/components/List/Wrapper.js | 0 .../{src => OLD}/components/List/index.js | 0 .../components/ListHeader/StyledLi.js | 0 .../components/ListHeader/index.js | 0 .../components/PluginInputFile/Label.js | 0 .../components/PluginInputFile/P.js | 0 .../components/PluginInputFile/index.js | 0 .../components/Separator/index.js | 0 .../{src => OLD}/containers/App/index.js | 0 .../containers/ConfigPage/Wrapper.js | 0 .../containers/ConfigPage/actions.js | 3 +- .../containers/ConfigPage/constants.js | 3 +- .../containers/ConfigPage/index.js | 0 .../containers/ConfigPage/reducer.js | 13 +++--- .../containers/ConfigPage/saga.js | 0 .../OLD/containers/ConfigPage/selectors.js | 26 +++++++++++ .../containers/HomePage/actions.js | 0 .../containers/HomePage/components.js | 0 .../containers/HomePage/constants.js | 0 .../{src => OLD}/containers/HomePage/index.js | 0 .../containers/HomePage/reducer.js | 0 .../{src => OLD}/containers/HomePage/saga.js | 0 .../OLD/containers/HomePage/selectors.js | 25 +++++++++++ .../containers/Initializer/index.js | 0 .../Initializer/tests/index.test.js | 10 ++++- .../{src => OLD}/contexts/HomePage/index.js | 0 .../admin/OLD/lifecycles.js | 13 ++++++ .../admin/{src => OLD}/translations/ar.json | 0 .../admin/{src => OLD}/translations/cs.json | 0 .../admin/{src => OLD}/translations/de.json | 0 .../admin/{src => OLD}/translations/en.json | 0 .../admin/{src => OLD}/translations/es.json | 0 .../admin/{src => OLD}/translations/fr.json | 0 .../admin/OLD/translations/index.js | 43 +++++++++++++++++++ .../admin/{src => OLD}/translations/it.json | 0 .../admin/{src => OLD}/translations/ja.json | 0 .../admin/{src => OLD}/translations/ko.json | 0 .../admin/{src => OLD}/translations/nl.json | 0 .../admin/{src => OLD}/translations/pl.json | 0 .../{src => OLD}/translations/pt-BR.json | 0 .../admin/{src => OLD}/translations/pt.json | 0 .../admin/{src => OLD}/translations/ru.json | 0 .../admin/{src => OLD}/translations/sk.json | 0 .../admin/{src => OLD}/translations/tr.json | 0 .../admin/{src => OLD}/translations/vi.json | 0 .../{src => OLD}/translations/zh-Hans.json | 0 .../admin/{src => OLD}/translations/zh.json | 0 .../src/containers/ConfigPage/selectors.js | 32 -------------- .../src/containers/HomePage/selectors.js | 33 -------------- .../strapi-plugin-upload/admin/src/index.js | 15 +++---- .../admin/src/translations/index.js | 43 ------------------- 62 files changed, 140 insertions(+), 131 deletions(-) rename packages/strapi-plugin-upload/admin/{src => OLD}/components/EditForm/Wrapper.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/components/EditForm/index.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/components/EntriesNumber/index.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/components/FileIcon/Wrapper.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/components/FileIcon/extensions.json (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/components/FileIcon/index.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/components/Li/components.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/components/Li/index.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/components/List/EmptyLi.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/components/List/Wrapper.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/components/List/index.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/components/ListHeader/StyledLi.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/components/ListHeader/index.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/components/PluginInputFile/Label.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/components/PluginInputFile/P.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/components/PluginInputFile/index.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/components/Separator/index.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/containers/App/index.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/containers/ConfigPage/Wrapper.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/containers/ConfigPage/actions.js (91%) rename packages/strapi-plugin-upload/admin/{src => OLD}/containers/ConfigPage/constants.js (87%) rename packages/strapi-plugin-upload/admin/{src => OLD}/containers/ConfigPage/index.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/containers/ConfigPage/reducer.js (82%) rename packages/strapi-plugin-upload/admin/{src => OLD}/containers/ConfigPage/saga.js (100%) create mode 100644 packages/strapi-plugin-upload/admin/OLD/containers/ConfigPage/selectors.js rename packages/strapi-plugin-upload/admin/{src => OLD}/containers/HomePage/actions.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/containers/HomePage/components.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/containers/HomePage/constants.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/containers/HomePage/index.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/containers/HomePage/reducer.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/containers/HomePage/saga.js (100%) create mode 100644 packages/strapi-plugin-upload/admin/OLD/containers/HomePage/selectors.js rename packages/strapi-plugin-upload/admin/{src => OLD}/containers/Initializer/index.js (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/containers/Initializer/tests/index.test.js (68%) rename packages/strapi-plugin-upload/admin/{src => OLD}/contexts/HomePage/index.js (100%) create mode 100644 packages/strapi-plugin-upload/admin/OLD/lifecycles.js rename packages/strapi-plugin-upload/admin/{src => OLD}/translations/ar.json (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/translations/cs.json (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/translations/de.json (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/translations/en.json (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/translations/es.json (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/translations/fr.json (100%) create mode 100644 packages/strapi-plugin-upload/admin/OLD/translations/index.js rename packages/strapi-plugin-upload/admin/{src => OLD}/translations/it.json (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/translations/ja.json (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/translations/ko.json (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/translations/nl.json (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/translations/pl.json (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/translations/pt-BR.json (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/translations/pt.json (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/translations/ru.json (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/translations/sk.json (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/translations/tr.json (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/translations/vi.json (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/translations/zh-Hans.json (100%) rename packages/strapi-plugin-upload/admin/{src => OLD}/translations/zh.json (100%) delete mode 100644 packages/strapi-plugin-upload/admin/src/containers/ConfigPage/selectors.js delete mode 100644 packages/strapi-plugin-upload/admin/src/containers/HomePage/selectors.js delete mode 100644 packages/strapi-plugin-upload/admin/src/translations/index.js diff --git a/.eslintignore b/.eslintignore index 5cdf069c80..e16b59bb01 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,6 +1,7 @@ **/node_modules/** **/build/** **/dist/** +**/OLD/** testApp/** examples/** packages/strapi-generate-plugin/files/admin/src/** diff --git a/packages/strapi-admin/admin/src/containers/Admin/index.js b/packages/strapi-admin/admin/src/containers/Admin/index.js index d66896d6ab..448c40997c 100644 --- a/packages/strapi-admin/admin/src/containers/Admin/index.js +++ b/packages/strapi-admin/admin/src/containers/Admin/index.js @@ -103,11 +103,14 @@ export class Admin extends React.Component { return Object.keys(plugins).reduce((acc, current) => { const InitializerComponent = plugins[current].initializer; - const key = plugins[current].id; - acc.push( - - ); + if (InitializerComponent) { + const key = plugins[current].id; + + acc.push( + + ); + } return acc; }, []); diff --git a/packages/strapi-plugin-upload/admin/src/components/EditForm/Wrapper.js b/packages/strapi-plugin-upload/admin/OLD/components/EditForm/Wrapper.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/components/EditForm/Wrapper.js rename to packages/strapi-plugin-upload/admin/OLD/components/EditForm/Wrapper.js diff --git a/packages/strapi-plugin-upload/admin/src/components/EditForm/index.js b/packages/strapi-plugin-upload/admin/OLD/components/EditForm/index.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/components/EditForm/index.js rename to packages/strapi-plugin-upload/admin/OLD/components/EditForm/index.js diff --git a/packages/strapi-plugin-upload/admin/src/components/EntriesNumber/index.js b/packages/strapi-plugin-upload/admin/OLD/components/EntriesNumber/index.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/components/EntriesNumber/index.js rename to packages/strapi-plugin-upload/admin/OLD/components/EntriesNumber/index.js diff --git a/packages/strapi-plugin-upload/admin/src/components/FileIcon/Wrapper.js b/packages/strapi-plugin-upload/admin/OLD/components/FileIcon/Wrapper.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/components/FileIcon/Wrapper.js rename to packages/strapi-plugin-upload/admin/OLD/components/FileIcon/Wrapper.js diff --git a/packages/strapi-plugin-upload/admin/src/components/FileIcon/extensions.json b/packages/strapi-plugin-upload/admin/OLD/components/FileIcon/extensions.json similarity index 100% rename from packages/strapi-plugin-upload/admin/src/components/FileIcon/extensions.json rename to packages/strapi-plugin-upload/admin/OLD/components/FileIcon/extensions.json diff --git a/packages/strapi-plugin-upload/admin/src/components/FileIcon/index.js b/packages/strapi-plugin-upload/admin/OLD/components/FileIcon/index.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/components/FileIcon/index.js rename to packages/strapi-plugin-upload/admin/OLD/components/FileIcon/index.js diff --git a/packages/strapi-plugin-upload/admin/src/components/Li/components.js b/packages/strapi-plugin-upload/admin/OLD/components/Li/components.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/components/Li/components.js rename to packages/strapi-plugin-upload/admin/OLD/components/Li/components.js diff --git a/packages/strapi-plugin-upload/admin/src/components/Li/index.js b/packages/strapi-plugin-upload/admin/OLD/components/Li/index.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/components/Li/index.js rename to packages/strapi-plugin-upload/admin/OLD/components/Li/index.js diff --git a/packages/strapi-plugin-upload/admin/src/components/List/EmptyLi.js b/packages/strapi-plugin-upload/admin/OLD/components/List/EmptyLi.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/components/List/EmptyLi.js rename to packages/strapi-plugin-upload/admin/OLD/components/List/EmptyLi.js diff --git a/packages/strapi-plugin-upload/admin/src/components/List/Wrapper.js b/packages/strapi-plugin-upload/admin/OLD/components/List/Wrapper.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/components/List/Wrapper.js rename to packages/strapi-plugin-upload/admin/OLD/components/List/Wrapper.js diff --git a/packages/strapi-plugin-upload/admin/src/components/List/index.js b/packages/strapi-plugin-upload/admin/OLD/components/List/index.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/components/List/index.js rename to packages/strapi-plugin-upload/admin/OLD/components/List/index.js diff --git a/packages/strapi-plugin-upload/admin/src/components/ListHeader/StyledLi.js b/packages/strapi-plugin-upload/admin/OLD/components/ListHeader/StyledLi.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/components/ListHeader/StyledLi.js rename to packages/strapi-plugin-upload/admin/OLD/components/ListHeader/StyledLi.js diff --git a/packages/strapi-plugin-upload/admin/src/components/ListHeader/index.js b/packages/strapi-plugin-upload/admin/OLD/components/ListHeader/index.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/components/ListHeader/index.js rename to packages/strapi-plugin-upload/admin/OLD/components/ListHeader/index.js diff --git a/packages/strapi-plugin-upload/admin/src/components/PluginInputFile/Label.js b/packages/strapi-plugin-upload/admin/OLD/components/PluginInputFile/Label.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/components/PluginInputFile/Label.js rename to packages/strapi-plugin-upload/admin/OLD/components/PluginInputFile/Label.js diff --git a/packages/strapi-plugin-upload/admin/src/components/PluginInputFile/P.js b/packages/strapi-plugin-upload/admin/OLD/components/PluginInputFile/P.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/components/PluginInputFile/P.js rename to packages/strapi-plugin-upload/admin/OLD/components/PluginInputFile/P.js diff --git a/packages/strapi-plugin-upload/admin/src/components/PluginInputFile/index.js b/packages/strapi-plugin-upload/admin/OLD/components/PluginInputFile/index.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/components/PluginInputFile/index.js rename to packages/strapi-plugin-upload/admin/OLD/components/PluginInputFile/index.js diff --git a/packages/strapi-plugin-upload/admin/src/components/Separator/index.js b/packages/strapi-plugin-upload/admin/OLD/components/Separator/index.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/components/Separator/index.js rename to packages/strapi-plugin-upload/admin/OLD/components/Separator/index.js diff --git a/packages/strapi-plugin-upload/admin/src/containers/App/index.js b/packages/strapi-plugin-upload/admin/OLD/containers/App/index.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/containers/App/index.js rename to packages/strapi-plugin-upload/admin/OLD/containers/App/index.js diff --git a/packages/strapi-plugin-upload/admin/src/containers/ConfigPage/Wrapper.js b/packages/strapi-plugin-upload/admin/OLD/containers/ConfigPage/Wrapper.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/containers/ConfigPage/Wrapper.js rename to packages/strapi-plugin-upload/admin/OLD/containers/ConfigPage/Wrapper.js diff --git a/packages/strapi-plugin-upload/admin/src/containers/ConfigPage/actions.js b/packages/strapi-plugin-upload/admin/OLD/containers/ConfigPage/actions.js similarity index 91% rename from packages/strapi-plugin-upload/admin/src/containers/ConfigPage/actions.js rename to packages/strapi-plugin-upload/admin/OLD/containers/ConfigPage/actions.js index e13fef19b2..ea39fd4234 100644 --- a/packages/strapi-plugin-upload/admin/src/containers/ConfigPage/actions.js +++ b/packages/strapi-plugin-upload/admin/OLD/containers/ConfigPage/actions.js @@ -40,7 +40,8 @@ export function onCancel() { export function onChange({ target }) { const keys = ['modifiedData'].concat(target.name.split('.')); - const value = target.name === 'sizeLimit' ? Number(target.value) * 1000 : target.value; + const value = + target.name === 'sizeLimit' ? Number(target.value) * 1000 : target.value; return { type: ON_CHANGE, diff --git a/packages/strapi-plugin-upload/admin/src/containers/ConfigPage/constants.js b/packages/strapi-plugin-upload/admin/OLD/containers/ConfigPage/constants.js similarity index 87% rename from packages/strapi-plugin-upload/admin/src/containers/ConfigPage/constants.js rename to packages/strapi-plugin-upload/admin/OLD/containers/ConfigPage/constants.js index d41eb3777e..8a26d5727b 100644 --- a/packages/strapi-plugin-upload/admin/src/containers/ConfigPage/constants.js +++ b/packages/strapi-plugin-upload/admin/OLD/containers/ConfigPage/constants.js @@ -7,7 +7,8 @@ export const GET_ENV = 'Upload/ConfigPage/GET_ENV'; export const GET_ENV_SUCCEEDED = 'Upload/ConfigPage/GET_ENV_SUCCEEDED'; export const GET_SETTINGS = 'Upload/ConfigPage/GET_SETTINGS'; -export const GET_SETTINGS_SUCCEEDED = 'Upload/ConfigPage/GET_SETTINGS_SUCCEEDED'; +export const GET_SETTINGS_SUCCEEDED = + 'Upload/ConfigPage/GET_SETTINGS_SUCCEEDED'; export const ON_CANCEL = 'Upload/ConfigPage/ON_CANCEL'; export const ON_CHANGE = 'Upload/ConfigPage/ON_CHANGE'; export const SET_ERRORS = 'Upload/ConfigPage/SET_ERRORS'; diff --git a/packages/strapi-plugin-upload/admin/src/containers/ConfigPage/index.js b/packages/strapi-plugin-upload/admin/OLD/containers/ConfigPage/index.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/containers/ConfigPage/index.js rename to packages/strapi-plugin-upload/admin/OLD/containers/ConfigPage/index.js diff --git a/packages/strapi-plugin-upload/admin/src/containers/ConfigPage/reducer.js b/packages/strapi-plugin-upload/admin/OLD/containers/ConfigPage/reducer.js similarity index 82% rename from packages/strapi-plugin-upload/admin/src/containers/ConfigPage/reducer.js rename to packages/strapi-plugin-upload/admin/OLD/containers/ConfigPage/reducer.js index 4e93baf56e..145a0e768a 100644 --- a/packages/strapi-plugin-upload/admin/src/containers/ConfigPage/reducer.js +++ b/packages/strapi-plugin-upload/admin/OLD/containers/ConfigPage/reducer.js @@ -34,31 +34,30 @@ function configPageReducer(state = initialState, action) { case GET_SETTINGS_SUCCEEDED: return state .update('appEnvironments', () => List(action.appEnvironments)) - .update('didCheckErrors', (v) => v = !v) + .update('didCheckErrors', v => (v = !v)) .update('formErrors', () => List([])) .update('initialData', () => Map(action.initialData)) .update('modifiedData', () => Map(action.initialData)) .update('settings', () => action.settings); case ON_CANCEL: return state - .update('didCheckErrors', (v) => v = !v) + .update('didCheckErrors', v => (v = !v)) .update('formErrors', () => List([])) .update('modifiedData', () => state.get('initialData')); case ON_CHANGE: - return state - .updateIn(action.keys, () => action.value); + return state.updateIn(action.keys, () => action.value); case SET_ERRORS: case SUBMIT_ERROR: return state - .update('didCheckErrors', (v) => v = !v) + .update('didCheckErrors', v => (v = !v)) .update('formErrors', () => List(action.errors)); case SUBMIT_SUCCEEDED: return state - .update('didCheckErrors', (v) => v = !v) + .update('didCheckErrors', v => (v = !v)) .update('formErrors', () => List([])) .update('initialData', () => Map(action.data)) .update('modifiedData', () => Map(action.data)) - .update('submitSuccess', (v) => v = !v); + .update('submitSuccess', v => (v = !v)); default: return state; } diff --git a/packages/strapi-plugin-upload/admin/src/containers/ConfigPage/saga.js b/packages/strapi-plugin-upload/admin/OLD/containers/ConfigPage/saga.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/containers/ConfigPage/saga.js rename to packages/strapi-plugin-upload/admin/OLD/containers/ConfigPage/saga.js diff --git a/packages/strapi-plugin-upload/admin/OLD/containers/ConfigPage/selectors.js b/packages/strapi-plugin-upload/admin/OLD/containers/ConfigPage/selectors.js new file mode 100644 index 0000000000..57b9c319f5 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/OLD/containers/ConfigPage/selectors.js @@ -0,0 +1,26 @@ +import { createSelector } from 'reselect'; +import pluginId from '../../pluginId'; + +/** + * Direct selector to the configPage state domain + */ +const selectConfigPageDomain = () => state => + state.get(`${pluginId}_configPage`); + +/** + * Default selector used by ConfigPage + */ + +const selectConfigPage = () => + createSelector(selectConfigPageDomain(), substate => substate.toJS()); + +const makeSelectEnv = () => + createSelector(selectConfigPageDomain(), substate => substate.get('env')); + +const makeSelectModifiedData = () => + createSelector(selectConfigPageDomain(), substate => + substate.get('modifiedData').toJS() + ); + +export default selectConfigPage; +export { makeSelectEnv, makeSelectModifiedData }; diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/actions.js b/packages/strapi-plugin-upload/admin/OLD/containers/HomePage/actions.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/containers/HomePage/actions.js rename to packages/strapi-plugin-upload/admin/OLD/containers/HomePage/actions.js diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/components.js b/packages/strapi-plugin-upload/admin/OLD/containers/HomePage/components.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/containers/HomePage/components.js rename to packages/strapi-plugin-upload/admin/OLD/containers/HomePage/components.js diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/constants.js b/packages/strapi-plugin-upload/admin/OLD/containers/HomePage/constants.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/containers/HomePage/constants.js rename to packages/strapi-plugin-upload/admin/OLD/containers/HomePage/constants.js diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js b/packages/strapi-plugin-upload/admin/OLD/containers/HomePage/index.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js rename to packages/strapi-plugin-upload/admin/OLD/containers/HomePage/index.js diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/reducer.js b/packages/strapi-plugin-upload/admin/OLD/containers/HomePage/reducer.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/containers/HomePage/reducer.js rename to packages/strapi-plugin-upload/admin/OLD/containers/HomePage/reducer.js diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/saga.js b/packages/strapi-plugin-upload/admin/OLD/containers/HomePage/saga.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/containers/HomePage/saga.js rename to packages/strapi-plugin-upload/admin/OLD/containers/HomePage/saga.js diff --git a/packages/strapi-plugin-upload/admin/OLD/containers/HomePage/selectors.js b/packages/strapi-plugin-upload/admin/OLD/containers/HomePage/selectors.js new file mode 100644 index 0000000000..6d006eea1e --- /dev/null +++ b/packages/strapi-plugin-upload/admin/OLD/containers/HomePage/selectors.js @@ -0,0 +1,25 @@ +import { createSelector } from 'reselect'; +import pluginId from '../../pluginId'; + +/** + * Direct selector to the homePage state domain + */ +const selectHomePageDomain = () => state => state.get(`${pluginId}_homePage`); + +/** + * Default selector used by HomePage + */ + +const selectHomePage = () => + createSelector(selectHomePageDomain(), substate => substate.toJS()); + +const makeSelectParams = () => + createSelector(selectHomePageDomain(), substate => + substate.get('params').toJS() + ); + +const makeSelectSearch = () => + createSelector(selectHomePageDomain(), substate => substate.get('search')); + +export default selectHomePage; +export { makeSelectSearch, makeSelectParams }; diff --git a/packages/strapi-plugin-upload/admin/src/containers/Initializer/index.js b/packages/strapi-plugin-upload/admin/OLD/containers/Initializer/index.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/containers/Initializer/index.js rename to packages/strapi-plugin-upload/admin/OLD/containers/Initializer/index.js diff --git a/packages/strapi-plugin-upload/admin/src/containers/Initializer/tests/index.test.js b/packages/strapi-plugin-upload/admin/OLD/containers/Initializer/tests/index.test.js similarity index 68% rename from packages/strapi-plugin-upload/admin/src/containers/Initializer/tests/index.test.js rename to packages/strapi-plugin-upload/admin/OLD/containers/Initializer/tests/index.test.js index 56bd4f938e..47884ee93a 100644 --- a/packages/strapi-plugin-upload/admin/src/containers/Initializer/tests/index.test.js +++ b/packages/strapi-plugin-upload/admin/OLD/containers/Initializer/tests/index.test.js @@ -6,7 +6,9 @@ import Initializer from '../index'; describe('', () => { it('Should not crash', () => { const updatePlugin = jest.fn(); - const renderedComponent = shallow(); + const renderedComponent = shallow( + + ); expect(renderedComponent.children()).toHaveLength(0); }); @@ -16,6 +18,10 @@ describe('', () => { const wrapper = mount(); - expect(wrapper.prop('updatePlugin')).toHaveBeenCalledWith('upload', 'isReady', true); + expect(wrapper.prop('updatePlugin')).toHaveBeenCalledWith( + 'upload', + 'isReady', + true + ); }); }); diff --git a/packages/strapi-plugin-upload/admin/src/contexts/HomePage/index.js b/packages/strapi-plugin-upload/admin/OLD/contexts/HomePage/index.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/contexts/HomePage/index.js rename to packages/strapi-plugin-upload/admin/OLD/contexts/HomePage/index.js diff --git a/packages/strapi-plugin-upload/admin/OLD/lifecycles.js b/packages/strapi-plugin-upload/admin/OLD/lifecycles.js new file mode 100644 index 0000000000..9a875051e1 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/OLD/lifecycles.js @@ -0,0 +1,13 @@ +/* + * + * SET THE HOOKS TO ENABLE THE MAGIC OF STRAPI. + * ------------------------------------------- + * + * Secure, customise and enhance your project by setting + * the hooks via this file. + * + */ + +function lifecycles() {} + +export default lifecycles; diff --git a/packages/strapi-plugin-upload/admin/src/translations/ar.json b/packages/strapi-plugin-upload/admin/OLD/translations/ar.json similarity index 100% rename from packages/strapi-plugin-upload/admin/src/translations/ar.json rename to packages/strapi-plugin-upload/admin/OLD/translations/ar.json diff --git a/packages/strapi-plugin-upload/admin/src/translations/cs.json b/packages/strapi-plugin-upload/admin/OLD/translations/cs.json similarity index 100% rename from packages/strapi-plugin-upload/admin/src/translations/cs.json rename to packages/strapi-plugin-upload/admin/OLD/translations/cs.json diff --git a/packages/strapi-plugin-upload/admin/src/translations/de.json b/packages/strapi-plugin-upload/admin/OLD/translations/de.json similarity index 100% rename from packages/strapi-plugin-upload/admin/src/translations/de.json rename to packages/strapi-plugin-upload/admin/OLD/translations/de.json diff --git a/packages/strapi-plugin-upload/admin/src/translations/en.json b/packages/strapi-plugin-upload/admin/OLD/translations/en.json similarity index 100% rename from packages/strapi-plugin-upload/admin/src/translations/en.json rename to packages/strapi-plugin-upload/admin/OLD/translations/en.json diff --git a/packages/strapi-plugin-upload/admin/src/translations/es.json b/packages/strapi-plugin-upload/admin/OLD/translations/es.json similarity index 100% rename from packages/strapi-plugin-upload/admin/src/translations/es.json rename to packages/strapi-plugin-upload/admin/OLD/translations/es.json diff --git a/packages/strapi-plugin-upload/admin/src/translations/fr.json b/packages/strapi-plugin-upload/admin/OLD/translations/fr.json similarity index 100% rename from packages/strapi-plugin-upload/admin/src/translations/fr.json rename to packages/strapi-plugin-upload/admin/OLD/translations/fr.json diff --git a/packages/strapi-plugin-upload/admin/OLD/translations/index.js b/packages/strapi-plugin-upload/admin/OLD/translations/index.js new file mode 100644 index 0000000000..1a51ab8687 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/OLD/translations/index.js @@ -0,0 +1,43 @@ +// import ar from './ar.json'; +// import cs from './cs.json'; +// import de from './de.json'; +// import en from './en.json'; +// import es from './es.json'; +// import fr from './fr.json'; +// import it from './it.json'; +// import ja from './ja.json'; +// import ko from './ko.json'; +// import nl from './nl.json'; +// import pl from './pl.json'; +// import ptBR from './pt-BR.json'; +// import pt from './pt.json'; +// import ru from './ru.json'; +// import tr from './tr.json'; +// import vi from './vi.json'; +// import zhHans from './zh-Hans.json'; +// import zh from './zh.json'; +// import sk from './sk.json'; + +// const trads = { +// ar, +// cs, +// de, +// en, +// es, +// fr, +// it, +// ja, +// ko, +// nl, +// pl, +// 'pt-BR': ptBR, +// pt, +// ru, +// tr, +// vi, +// 'zh-Hans': zhHans, +// zh, +// sk, +// }; + +// export default trads; diff --git a/packages/strapi-plugin-upload/admin/src/translations/it.json b/packages/strapi-plugin-upload/admin/OLD/translations/it.json similarity index 100% rename from packages/strapi-plugin-upload/admin/src/translations/it.json rename to packages/strapi-plugin-upload/admin/OLD/translations/it.json diff --git a/packages/strapi-plugin-upload/admin/src/translations/ja.json b/packages/strapi-plugin-upload/admin/OLD/translations/ja.json similarity index 100% rename from packages/strapi-plugin-upload/admin/src/translations/ja.json rename to packages/strapi-plugin-upload/admin/OLD/translations/ja.json diff --git a/packages/strapi-plugin-upload/admin/src/translations/ko.json b/packages/strapi-plugin-upload/admin/OLD/translations/ko.json similarity index 100% rename from packages/strapi-plugin-upload/admin/src/translations/ko.json rename to packages/strapi-plugin-upload/admin/OLD/translations/ko.json diff --git a/packages/strapi-plugin-upload/admin/src/translations/nl.json b/packages/strapi-plugin-upload/admin/OLD/translations/nl.json similarity index 100% rename from packages/strapi-plugin-upload/admin/src/translations/nl.json rename to packages/strapi-plugin-upload/admin/OLD/translations/nl.json diff --git a/packages/strapi-plugin-upload/admin/src/translations/pl.json b/packages/strapi-plugin-upload/admin/OLD/translations/pl.json similarity index 100% rename from packages/strapi-plugin-upload/admin/src/translations/pl.json rename to packages/strapi-plugin-upload/admin/OLD/translations/pl.json diff --git a/packages/strapi-plugin-upload/admin/src/translations/pt-BR.json b/packages/strapi-plugin-upload/admin/OLD/translations/pt-BR.json similarity index 100% rename from packages/strapi-plugin-upload/admin/src/translations/pt-BR.json rename to packages/strapi-plugin-upload/admin/OLD/translations/pt-BR.json diff --git a/packages/strapi-plugin-upload/admin/src/translations/pt.json b/packages/strapi-plugin-upload/admin/OLD/translations/pt.json similarity index 100% rename from packages/strapi-plugin-upload/admin/src/translations/pt.json rename to packages/strapi-plugin-upload/admin/OLD/translations/pt.json diff --git a/packages/strapi-plugin-upload/admin/src/translations/ru.json b/packages/strapi-plugin-upload/admin/OLD/translations/ru.json similarity index 100% rename from packages/strapi-plugin-upload/admin/src/translations/ru.json rename to packages/strapi-plugin-upload/admin/OLD/translations/ru.json diff --git a/packages/strapi-plugin-upload/admin/src/translations/sk.json b/packages/strapi-plugin-upload/admin/OLD/translations/sk.json similarity index 100% rename from packages/strapi-plugin-upload/admin/src/translations/sk.json rename to packages/strapi-plugin-upload/admin/OLD/translations/sk.json diff --git a/packages/strapi-plugin-upload/admin/src/translations/tr.json b/packages/strapi-plugin-upload/admin/OLD/translations/tr.json similarity index 100% rename from packages/strapi-plugin-upload/admin/src/translations/tr.json rename to packages/strapi-plugin-upload/admin/OLD/translations/tr.json diff --git a/packages/strapi-plugin-upload/admin/src/translations/vi.json b/packages/strapi-plugin-upload/admin/OLD/translations/vi.json similarity index 100% rename from packages/strapi-plugin-upload/admin/src/translations/vi.json rename to packages/strapi-plugin-upload/admin/OLD/translations/vi.json diff --git a/packages/strapi-plugin-upload/admin/src/translations/zh-Hans.json b/packages/strapi-plugin-upload/admin/OLD/translations/zh-Hans.json similarity index 100% rename from packages/strapi-plugin-upload/admin/src/translations/zh-Hans.json rename to packages/strapi-plugin-upload/admin/OLD/translations/zh-Hans.json diff --git a/packages/strapi-plugin-upload/admin/src/translations/zh.json b/packages/strapi-plugin-upload/admin/OLD/translations/zh.json similarity index 100% rename from packages/strapi-plugin-upload/admin/src/translations/zh.json rename to packages/strapi-plugin-upload/admin/OLD/translations/zh.json diff --git a/packages/strapi-plugin-upload/admin/src/containers/ConfigPage/selectors.js b/packages/strapi-plugin-upload/admin/src/containers/ConfigPage/selectors.js deleted file mode 100644 index 2659d39aa5..0000000000 --- a/packages/strapi-plugin-upload/admin/src/containers/ConfigPage/selectors.js +++ /dev/null @@ -1,32 +0,0 @@ -import { createSelector } from 'reselect'; -import pluginId from '../../pluginId'; - -/** - * Direct selector to the configPage state domain - */ -const selectConfigPageDomain = () => state => state.get(`${pluginId}_configPage`); - -/** - * Default selector used by ConfigPage - */ - -const selectConfigPage = () => createSelector( - selectConfigPageDomain(), - (substate) => substate.toJS(), -); - -const makeSelectEnv = () => createSelector( - selectConfigPageDomain(), - (substate) => substate.get('env'), -); - -const makeSelectModifiedData = () => createSelector( - selectConfigPageDomain(), - (substate) => substate.get('modifiedData').toJS(), -); - -export default selectConfigPage; -export { - makeSelectEnv, - makeSelectModifiedData, -}; diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/selectors.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/selectors.js deleted file mode 100644 index 56d7b4d6b0..0000000000 --- a/packages/strapi-plugin-upload/admin/src/containers/HomePage/selectors.js +++ /dev/null @@ -1,33 +0,0 @@ -import { createSelector } from 'reselect'; -import pluginId from '../../pluginId'; - - -/** - * Direct selector to the homePage state domain - */ -const selectHomePageDomain = () => state => state.get(`${pluginId}_homePage`); - -/** - * Default selector used by HomePage - */ - -const selectHomePage = () => createSelector( - selectHomePageDomain(), - (substate) => substate.toJS(), -); - -const makeSelectParams = () => createSelector( - selectHomePageDomain(), - (substate) => substate.get('params').toJS(), -); - -const makeSelectSearch = () => createSelector( - selectHomePageDomain(), - (substate) => substate.get('search'), -); - -export default selectHomePage; -export { - makeSelectSearch, - makeSelectParams, -}; diff --git a/packages/strapi-plugin-upload/admin/src/index.js b/packages/strapi-plugin-upload/admin/src/index.js index 471636b8f7..3843db2744 100644 --- a/packages/strapi-plugin-upload/admin/src/index.js +++ b/packages/strapi-plugin-upload/admin/src/index.js @@ -1,8 +1,6 @@ import pluginPkg from '../../package.json'; -import App from './containers/App'; -import Initializer from './containers/Initializer'; -import lifecycles from './lifecycles'; -import trads from './translations'; +// import App from './containers/App'; +// import trads from './translations'; import pluginId from './pluginId'; export default strapi => { @@ -14,16 +12,17 @@ export default strapi => { description: pluginDescription, icon: pluginPkg.strapi.icon, id: pluginId, - initializer: Initializer, + initializer: null, injectedComponents: [], + isReady: true, layout: null, - lifecycles, + lifecycles: null, leftMenuLinks: [], leftMenuSections: [], - mainComponent: App, + mainComponent: null, name: pluginPkg.strapi.name, preventComponentRendering: false, - trads, + trads: {}, }; return strapi.registerPlugin(plugin); diff --git a/packages/strapi-plugin-upload/admin/src/translations/index.js b/packages/strapi-plugin-upload/admin/src/translations/index.js deleted file mode 100644 index ad81cf9323..0000000000 --- a/packages/strapi-plugin-upload/admin/src/translations/index.js +++ /dev/null @@ -1,43 +0,0 @@ -import ar from './ar.json'; -import cs from './cs.json'; -import de from './de.json'; -import en from './en.json'; -import es from './es.json'; -import fr from './fr.json'; -import it from './it.json'; -import ja from './ja.json'; -import ko from './ko.json'; -import nl from './nl.json'; -import pl from './pl.json'; -import ptBR from './pt-BR.json'; -import pt from './pt.json'; -import ru from './ru.json'; -import tr from './tr.json'; -import vi from './vi.json'; -import zhHans from './zh-Hans.json'; -import zh from './zh.json'; -import sk from './sk.json'; - -const trads = { - ar, - cs, - de, - en, - es, - fr, - it, - ja, - ko, - nl, - pl, - 'pt-BR': ptBR, - pt, - ru, - tr, - vi, - 'zh-Hans': zhHans, - zh, - sk, -}; - -export default trads; From f6c03893aab26cf35e85c3ab9d011f5edb992b66 Mon Sep 17 00:00:00 2001 From: soupette Date: Thu, 13 Feb 2020 07:44:57 +0100 Subject: [PATCH 002/492] Init new architecture and change plugin display name Signed-off-by: soupette --- packages/strapi-plugin-upload/admin/src/index.js | 6 +++--- .../strapi-plugin-upload/admin/src/translations/en.json | 4 ++++ .../strapi-plugin-upload/admin/src/translations/index.js | 7 +++++++ packages/strapi-plugin-upload/admin/src/utils/getTrad.js | 5 +++++ packages/strapi-plugin-upload/package.json | 2 +- 5 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 packages/strapi-plugin-upload/admin/src/translations/en.json create mode 100644 packages/strapi-plugin-upload/admin/src/translations/index.js create mode 100644 packages/strapi-plugin-upload/admin/src/utils/getTrad.js diff --git a/packages/strapi-plugin-upload/admin/src/index.js b/packages/strapi-plugin-upload/admin/src/index.js index 3843db2744..f373ee54a0 100644 --- a/packages/strapi-plugin-upload/admin/src/index.js +++ b/packages/strapi-plugin-upload/admin/src/index.js @@ -1,6 +1,6 @@ import pluginPkg from '../../package.json'; // import App from './containers/App'; -// import trads from './translations'; +import trads from './translations'; import pluginId from './pluginId'; export default strapi => { @@ -19,10 +19,10 @@ export default strapi => { lifecycles: null, leftMenuLinks: [], leftMenuSections: [], - mainComponent: null, + mainComponent: () => null, name: pluginPkg.strapi.name, preventComponentRendering: false, - trads: {}, + trads, }; return strapi.registerPlugin(plugin); diff --git a/packages/strapi-plugin-upload/admin/src/translations/en.json b/packages/strapi-plugin-upload/admin/src/translations/en.json new file mode 100644 index 0000000000..b61fbef459 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/translations/en.json @@ -0,0 +1,4 @@ +{ + "plugin.description.long": "Media file management.", + "plugin.description.short": "Media file management." +} diff --git a/packages/strapi-plugin-upload/admin/src/translations/index.js b/packages/strapi-plugin-upload/admin/src/translations/index.js new file mode 100644 index 0000000000..d4f8b8f01d --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/translations/index.js @@ -0,0 +1,7 @@ +import en from './en.json'; + +const trads = { + en, +}; + +export default trads; diff --git a/packages/strapi-plugin-upload/admin/src/utils/getTrad.js b/packages/strapi-plugin-upload/admin/src/utils/getTrad.js new file mode 100644 index 0000000000..a2b8632a8d --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/utils/getTrad.js @@ -0,0 +1,5 @@ +import pluginId from '../pluginId'; + +const getTrad = id => `${pluginId}.${id}`; + +export default getTrad; diff --git a/packages/strapi-plugin-upload/package.json b/packages/strapi-plugin-upload/package.json index 94432053fd..89ec0f243e 100644 --- a/packages/strapi-plugin-upload/package.json +++ b/packages/strapi-plugin-upload/package.json @@ -3,7 +3,7 @@ "version": "3.0.0-beta.18.7", "description": "This is the description of the plugin.", "strapi": { - "name": "Files Upload", + "name": "Media Library", "icon": "cloud-upload-alt", "description": "upload.plugin.description" }, From e023aaf5b2f18a54d5b909199ab294828e81acaa Mon Sep 17 00:00:00 2001 From: soupette Date: Thu, 13 Feb 2020 09:01:32 +0100 Subject: [PATCH 003/492] Init HomePage --- jest.config.front.js | 1 + .../admin/src/components/Container/index.js | 7 +++ .../admin/src/containers/App/index.js | 14 +++++ .../admin/src/containers/HomePage/index.js | 54 +++++++++++++++++++ .../admin/src/containers/HomePage/init.js | 5 ++ .../admin/src/containers/HomePage/reducer.js | 16 ++++++ .../HomePage/utils/getHeaderLabel.js | 13 +++++ .../utils/tests/getHeaderLabel.test.js | 26 +++++++++ .../admin/src/containers/List/index.js | 16 ++++++ .../strapi-plugin-upload/admin/src/index.js | 4 +- .../admin/src/translations/en.json | 4 ++ 11 files changed, 158 insertions(+), 2 deletions(-) create mode 100644 packages/strapi-plugin-upload/admin/src/components/Container/index.js create mode 100644 packages/strapi-plugin-upload/admin/src/containers/App/index.js create mode 100644 packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js create mode 100644 packages/strapi-plugin-upload/admin/src/containers/HomePage/init.js create mode 100644 packages/strapi-plugin-upload/admin/src/containers/HomePage/reducer.js create mode 100644 packages/strapi-plugin-upload/admin/src/containers/HomePage/utils/getHeaderLabel.js create mode 100644 packages/strapi-plugin-upload/admin/src/containers/HomePage/utils/tests/getHeaderLabel.test.js create mode 100644 packages/strapi-plugin-upload/admin/src/containers/List/index.js diff --git a/jest.config.front.js b/jest.config.front.js index a45344af8a..2f23e5940c 100644 --- a/jest.config.front.js +++ b/jest.config.front.js @@ -37,6 +37,7 @@ module.exports = { '/node_modules/', '/examples/getstarted/', '/packages/strapi-helper-plugin/dist/', + '/OLD/', ], setupFilesAfterEnv: [ '/test/config/front/enzyme-setup.js', diff --git a/packages/strapi-plugin-upload/admin/src/components/Container/index.js b/packages/strapi-plugin-upload/admin/src/components/Container/index.js new file mode 100644 index 0000000000..74a5fae189 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/Container/index.js @@ -0,0 +1,7 @@ +import styled from 'styled-components'; + +const Container = styled.div` + padding: 18px 30px 18px 30px; +`; + +export default Container; diff --git a/packages/strapi-plugin-upload/admin/src/containers/App/index.js b/packages/strapi-plugin-upload/admin/src/containers/App/index.js new file mode 100644 index 0000000000..47527fa2b0 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/containers/App/index.js @@ -0,0 +1,14 @@ +import React from 'react'; +import { Switch, Route } from 'react-router-dom'; +import pluginId from '../../pluginId'; +import HomePage from '../HomePage'; + +const App = () => { + return ( + + + + ); +}; + +export default App; diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js new file mode 100644 index 0000000000..a13496c32a --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js @@ -0,0 +1,54 @@ +import React, { useReducer } from 'react'; +import { Header } from '@buffetjs/custom'; +import { useGlobalContext } from 'strapi-helper-plugin'; +import getTrad from '../../utils/getTrad'; +import Container from '../../components/Container'; +// import List from '../List'; +import getHeaderLabel from './utils/getHeaderLabel'; +import init from './init'; +import reducer, { initialState } from './reducer'; + +const HomePage = () => { + const { formatMessage } = useGlobalContext(); + const [reducerState] = useReducer(reducer, initialState, init); + const { data, dataToDelete } = reducerState.toJS(); + + const headerProps = { + title: { + label: 'Media Library', + }, + content: formatMessage( + { + id: getTrad(getHeaderLabel(data)), + }, + // Values + { number: 1 } + ), + actions: [ + { + disabled: dataToDelete.length === 0, + color: 'cancel', + // TradId from the strapi-admin package + label: formatMessage({ id: 'app.utils.delete' }), + onClick: () => {}, + type: 'button', + }, + { + disabled: false, + color: 'primary', + label: formatMessage({ id: getTrad('header.actions.upload-assets') }), + onClick: () => {}, + type: 'button', + }, + ], + }; + + return ( + +
+ {/* */} + + ); +}; + +export default HomePage; diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/init.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/init.js new file mode 100644 index 0000000000..01b755b049 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/containers/HomePage/init.js @@ -0,0 +1,5 @@ +const init = initialState => { + return initialState; +}; + +export default init; diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/reducer.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/reducer.js new file mode 100644 index 0000000000..bd21ed996e --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/containers/HomePage/reducer.js @@ -0,0 +1,16 @@ +import { fromJS } from 'immutable'; + +const initialState = fromJS({ + data: [], + dataToDelete: [], +}); + +const reducer = (state, action) => { + switch (action.type) { + default: + return state; + } +}; + +export default reducer; +export { initialState }; diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/utils/getHeaderLabel.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/utils/getHeaderLabel.js new file mode 100644 index 0000000000..7c7a254c8e --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/containers/HomePage/utils/getHeaderLabel.js @@ -0,0 +1,13 @@ +const getHeaderLabel = array => { + let headerLabel = 'header.content.assets-single'; + + if (array.length === 0) { + headerLabel = 'header.content.assets-empty'; + } else if (array.length > 1) { + headerLabel = 'header.content.assets-multiple'; + } + + return headerLabel; +}; + +export default getHeaderLabel; diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/utils/tests/getHeaderLabel.test.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/utils/tests/getHeaderLabel.test.js new file mode 100644 index 0000000000..cecce00418 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/containers/HomePage/utils/tests/getHeaderLabel.test.js @@ -0,0 +1,26 @@ +import getHeaderLabel from '../getHeaderLabel'; + +describe('MEDIA LIBRARY | containers | HomePage | utils', () => { + describe('getHeaderLabel', () => { + it('should return the header translation with this empty suffix if there is no data', () => { + const data = []; + const expected = 'header.content.assets-empty'; + + expect(getHeaderLabel(data)).toEqual(expected); + }); + + it('should return the header translation with this single suffix if there is 1 element', () => { + const data = ['test']; + const expected = 'header.content.assets-single'; + + expect(getHeaderLabel(data)).toEqual(expected); + }); + + it('should return the header translation with this multiple suffix if there is more than 1 element', () => { + const data = ['test', 'test2']; + const expected = 'header.content.assets-multiple'; + + expect(getHeaderLabel(data)).toEqual(expected); + }); + }); +}); diff --git a/packages/strapi-plugin-upload/admin/src/containers/List/index.js b/packages/strapi-plugin-upload/admin/src/containers/List/index.js new file mode 100644 index 0000000000..42531616e2 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/containers/List/index.js @@ -0,0 +1,16 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +const List = ({ data }) => { + return
Coming soon {data.length}
; +}; + +List.defaultProps = { + data: [], +}; + +List.propTypes = { + data: PropTypes.arrayOf(PropTypes.object), +}; + +export default List; diff --git a/packages/strapi-plugin-upload/admin/src/index.js b/packages/strapi-plugin-upload/admin/src/index.js index f373ee54a0..8ad72cf1b4 100644 --- a/packages/strapi-plugin-upload/admin/src/index.js +++ b/packages/strapi-plugin-upload/admin/src/index.js @@ -1,5 +1,5 @@ import pluginPkg from '../../package.json'; -// import App from './containers/App'; +import App from './containers/App'; import trads from './translations'; import pluginId from './pluginId'; @@ -19,7 +19,7 @@ export default strapi => { lifecycles: null, leftMenuLinks: [], leftMenuSections: [], - mainComponent: () => null, + mainComponent: App, name: pluginPkg.strapi.name, preventComponentRendering: false, trads, diff --git a/packages/strapi-plugin-upload/admin/src/translations/en.json b/packages/strapi-plugin-upload/admin/src/translations/en.json index b61fbef459..ae1fba89ed 100644 --- a/packages/strapi-plugin-upload/admin/src/translations/en.json +++ b/packages/strapi-plugin-upload/admin/src/translations/en.json @@ -1,4 +1,8 @@ { + "header.actions.upload-assets": "Upload assets", + "header.content.assets-empty": "No asset", + "header.content.assets-multiple": "{number} assets", + "header.content.assets-single": "1 asset", "plugin.description.long": "Media file management.", "plugin.description.short": "Media file management." } From be4954a7e86f1f4379207c5a52b71d71cbedbd92 Mon Sep 17 00:00:00 2001 From: soupette Date: Thu, 13 Feb 2020 09:39:20 +0100 Subject: [PATCH 004/492] Move Filter icon in helper plugin Signed-off-by: soupette --- .../lib/src/components/SearchInfo/Wrapper.js | 30 ++++++++++ .../lib/src/components/SearchInfo/index.js | 23 ++++++++ .../strapi-helper-plugin/lib/src/index.js | 55 ++++++------------- .../lib/src/svgs}/Filter/index.js | 0 .../lib/src/svgs}/Search/index.js | 0 .../admin/src/components/Search/components.js | 29 +--------- .../admin/src/components/Search/index.js | 10 +--- .../src/containers/ListView/components.js | 3 +- 8 files changed, 74 insertions(+), 76 deletions(-) create mode 100644 packages/strapi-helper-plugin/lib/src/components/SearchInfo/Wrapper.js create mode 100644 packages/strapi-helper-plugin/lib/src/components/SearchInfo/index.js rename packages/{strapi-plugin-content-manager/admin/src/icons => strapi-helper-plugin/lib/src/svgs}/Filter/index.js (100%) rename packages/{strapi-plugin-content-manager/admin/src/icons => strapi-helper-plugin/lib/src/svgs}/Search/index.js (100%) diff --git a/packages/strapi-helper-plugin/lib/src/components/SearchInfo/Wrapper.js b/packages/strapi-helper-plugin/lib/src/components/SearchInfo/Wrapper.js new file mode 100644 index 0000000000..80197e6414 --- /dev/null +++ b/packages/strapi-helper-plugin/lib/src/components/SearchInfo/Wrapper.js @@ -0,0 +1,30 @@ +import styled from 'styled-components'; + +const Wrapper = styled.div` + position: relative; + height: 22px; + margin: auto; + margin-top: 19px; + margin-left: 20px; + padding-right: 10px; + padding-left: 30px; + background: rgba(0, 126, 255, 0.08); + border: 1px solid rgba(0, 126, 255, 0.24); + border-radius: 2px; + line-height: 22px; + color: #007eff; + font-size: 13px; + font-weight: 400; + line-height: 20px; + -webkit-font-smoothing: antialiased; + > svg { + position: absolute; + top: 1px; + margin: auto; + bottom: 0; + left: 11px; + height: 7px; + } +`; + +export default Wrapper; diff --git a/packages/strapi-helper-plugin/lib/src/components/SearchInfo/index.js b/packages/strapi-helper-plugin/lib/src/components/SearchInfo/index.js new file mode 100644 index 0000000000..38464d12d9 --- /dev/null +++ b/packages/strapi-helper-plugin/lib/src/components/SearchInfo/index.js @@ -0,0 +1,23 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import FilterIcon from '../../svgs/Filter'; +import Wrapper from './Wrapper'; + +const SearchInfos = ({ label }) => { + return ( + + + {label} + + ); +}; + +SearchInfos.defaultProps = { + label: null, +}; + +SearchInfos.propTypes = { + label: PropTypes.string, +}; + +export default SearchInfos; diff --git a/packages/strapi-helper-plugin/lib/src/index.js b/packages/strapi-helper-plugin/lib/src/index.js index 97109e428e..571b3ea670 100644 --- a/packages/strapi-helper-plugin/lib/src/index.js +++ b/packages/strapi-helper-plugin/lib/src/index.js @@ -12,9 +12,7 @@ export { default as Button } from './components/Button'; export { default as ButtonModal } from './components/ButtonModal'; export { default as CircleButton } from './components/CircleButton'; export { default as ContainerFluid } from './components/ContainerFluid'; -export { - default as EmptyAttributesBlock, -} from './components/EmptyAttributesBlock'; +export { default as EmptyAttributesBlock } from './components/EmptyAttributesBlock'; export { default as ErrorBoundary } from './components/ErrorBoundary'; export { default as ExtendComponent } from './components/ExtendComponent'; export { default as GlobalPagination } from './components/GlobalPagination'; @@ -24,54 +22,32 @@ export { default as HeaderModalTitle } from './components/HeaderModalTitle'; export { default as IcoContainer } from './components/IcoContainer'; export { default as InputAddon } from './components/InputAddon'; -export { - default as InputAddonWithErrors, -} from './components/InputAddonWithErrors'; +export { default as InputAddonWithErrors } from './components/InputAddonWithErrors'; export { default as InputCheckbox } from './components/InputCheckbox'; -export { - default as InputCheckboxWithErrors, -} from './components/InputCheckboxWithErrors'; +export { default as InputCheckboxWithErrors } from './components/InputCheckboxWithErrors'; export { default as InputDate } from './components/InputDate'; -export { - default as InputDateWithErrors, -} from './components/InputDateWithErrors'; +export { default as InputDateWithErrors } from './components/InputDateWithErrors'; export { default as InputDescription } from './components/InputDescription'; export { default as InputEmail } from './components/InputEmail'; -export { - default as InputEmailWithErrors, -} from './components/InputEmailWithErrors'; +export { default as InputEmailWithErrors } from './components/InputEmailWithErrors'; export { default as InputErrors } from './components/InputErrors'; export { default as InputFile } from './components/InputFile'; export { default as InputNumber } from './components/InputNumber'; -export { - default as InputNumberWithErrors, -} from './components/InputNumberWithErrors'; +export { default as InputNumberWithErrors } from './components/InputNumberWithErrors'; export { default as InputPassword } from './components/InputPassword'; -export { - default as InputPasswordWithErrors, -} from './components/InputPasswordWithErrors'; +export { default as InputPasswordWithErrors } from './components/InputPasswordWithErrors'; export { default as InputSearch } from './components/InputSearch'; -export { - default as InputSearchWithErrors, -} from './components/InputSearchWithErrors'; +export { default as InputSearchWithErrors } from './components/InputSearchWithErrors'; export { default as InputSelect } from './components/InputSelect'; -export { - default as InputSelectWithErrors, -} from './components/InputSelectWithErrors'; +export { default as InputSelectWithErrors } from './components/InputSelectWithErrors'; export { default as InputsIndex } from './components/InputsIndex'; export { default as InputSpacer } from './components/InputSpacer'; export { default as InputText } from './components/InputText'; -export { - default as InputTextWithErrors, -} from './components/InputTextWithErrors'; +export { default as InputTextWithErrors } from './components/InputTextWithErrors'; export { default as InputTextArea } from './components/InputTextArea'; -export { - default as InputTextAreaWithErrors, -} from './components/InputTextAreaWithErrors'; +export { default as InputTextAreaWithErrors } from './components/InputTextAreaWithErrors'; export { default as InputToggle } from './components/InputToggle'; -export { - default as InputToggleWithErrors, -} from './components/InputToggleWithErrors'; +export { default as InputToggleWithErrors } from './components/InputToggleWithErrors'; export { default as Label } from './components/Label'; export { default as LeftMenu } from './components/LeftMenu'; @@ -86,9 +62,7 @@ export { default as ListTitle } from './components/ListTitle'; export { default as LoadingBar } from './components/LoadingBar'; export { default as LoadingIndicator } from './components/LoadingIndicator'; -export { - default as LoadingIndicatorPage, -} from './components/LoadingIndicatorPage'; +export { default as LoadingIndicatorPage } from './components/LoadingIndicatorPage'; export { default as Modal } from './components/Modal'; export { default as ModalBody } from './components/BodyModal'; @@ -99,6 +73,7 @@ export { default as OverlayBlocker } from './components/OverlayBlocker'; export { default as PageFooter } from './components/PageFooter'; export { default as PluginHeader } from './components/PluginHeader'; export { default as PopUpWarning } from './components/PopUpWarning'; +export { default as SearchInfo } from './components/SearchInfo'; export { default as SelectNav } from './components/SelectNav'; export { default as SelectWrapper } from './components/SelectWrapper'; export { default as TrashButton } from './components/TrashButton'; @@ -129,3 +104,5 @@ export { default as getYupInnerErrors } from './utils/getYupInnerErrors'; // SVGS export { default as LayoutIcon } from './svgs/Layout'; export { default as Close } from './svgs/Close'; +export { default as FilterIcon } from './svgs/Filter'; +export { default as SearchIcon } from './svgs/Search'; diff --git a/packages/strapi-plugin-content-manager/admin/src/icons/Filter/index.js b/packages/strapi-helper-plugin/lib/src/svgs/Filter/index.js similarity index 100% rename from packages/strapi-plugin-content-manager/admin/src/icons/Filter/index.js rename to packages/strapi-helper-plugin/lib/src/svgs/Filter/index.js diff --git a/packages/strapi-plugin-content-manager/admin/src/icons/Search/index.js b/packages/strapi-helper-plugin/lib/src/svgs/Search/index.js similarity index 100% rename from packages/strapi-plugin-content-manager/admin/src/icons/Search/index.js rename to packages/strapi-helper-plugin/lib/src/svgs/Search/index.js diff --git a/packages/strapi-plugin-content-manager/admin/src/components/Search/components.js b/packages/strapi-plugin-content-manager/admin/src/components/Search/components.js index f4dd44cf02..5a79d131d9 100644 --- a/packages/strapi-plugin-content-manager/admin/src/components/Search/components.js +++ b/packages/strapi-plugin-content-manager/admin/src/components/Search/components.js @@ -43,33 +43,6 @@ const Wrapper = styled.div` } `; -const Infos = styled.div` - position: relative; - height: 22px; - margin: auto; - margin-top: 19px; - margin-left: 20px; - padding-right: 10px; - padding-left: 30px; - background: rgba(0, 126, 255, 0.08); - border: 1px solid rgba(0, 126, 255, 0.24); - border-radius: 2px; - line-height: 22px; - color: #007eff; - font-size: 13px; - font-weight: 400; - line-height: 20px; - -webkit-font-smoothing: antialiased; - > svg { - position: absolute; - top: 1px; - margin: auto; - bottom: 0; - left: 11px; - height: 7px; - } -`; - const Clear = styled.div` display: flex; flex-direction: column; @@ -80,4 +53,4 @@ const Clear = styled.div` cursor: pointer; `; -export { Clear, Wrapper, Infos }; +export { Clear, Wrapper }; diff --git a/packages/strapi-plugin-content-manager/admin/src/components/Search/index.js b/packages/strapi-plugin-content-manager/admin/src/components/Search/index.js index 4ec43d9a70..231f0154c0 100644 --- a/packages/strapi-plugin-content-manager/admin/src/components/Search/index.js +++ b/packages/strapi-plugin-content-manager/admin/src/components/Search/index.js @@ -8,10 +8,9 @@ import React, { memo } from 'react'; import { isEmpty, upperFirst } from 'lodash'; import PropTypes from 'prop-types'; import { FormattedMessage } from 'react-intl'; +import { SearchIcon, SearchInfo } from 'strapi-helper-plugin'; import Cross from '../../icons/Cross'; -import Filter from '../../icons/Filter'; -import SearchIcon from '../../icons/Search'; -import { Wrapper, Infos, Clear } from './components'; +import { Wrapper, Clear } from './components'; const WAIT = 400; @@ -78,10 +77,7 @@ class Search extends React.Component { )} - - - {upperFirst(model)} - + ); } diff --git a/packages/strapi-plugin-content-manager/admin/src/containers/ListView/components.js b/packages/strapi-plugin-content-manager/admin/src/containers/ListView/components.js index 75cafedc97..88ecb7ab7b 100644 --- a/packages/strapi-plugin-content-manager/admin/src/containers/ListView/components.js +++ b/packages/strapi-plugin-content-manager/admin/src/containers/ListView/components.js @@ -1,6 +1,5 @@ import styled from 'styled-components'; -import { Button } from 'strapi-helper-plugin'; -import Filter from '../../icons/Filter'; +import { Button, FilterIcon as Filter } from 'strapi-helper-plugin'; import RemoveIcon from '../../assets/images/icon-cross-blue.svg'; const Wrapper = styled.div` From 4a344d1212c72034d838724baa08b06a316c1304 Mon Sep 17 00:00:00 2001 From: soupette Date: Thu, 13 Feb 2020 10:02:28 +0100 Subject: [PATCH 005/492] Created HeaderSearch component and add it to the ctm Signed-off-by: soupette --- .../lib/src/components/HeaderSearch/Clear.js | 13 +++++ .../src/components/HeaderSearch/ClearIcon.js | 33 +++++++++++++ .../src/components/HeaderSearch/Wrapper.js} | 12 +---- .../lib/src/components/HeaderSearch/index.js | 49 +++++++++++++++++++ .../strapi-helper-plugin/lib/src/index.js | 1 + .../admin/src/components/Search/index.js | 39 +++++---------- .../admin/src/containers/List/index.js | 2 +- 7 files changed, 111 insertions(+), 38 deletions(-) create mode 100644 packages/strapi-helper-plugin/lib/src/components/HeaderSearch/Clear.js create mode 100644 packages/strapi-helper-plugin/lib/src/components/HeaderSearch/ClearIcon.js rename packages/{strapi-plugin-content-manager/admin/src/components/Search/components.js => strapi-helper-plugin/lib/src/components/HeaderSearch/Wrapper.js} (77%) create mode 100644 packages/strapi-helper-plugin/lib/src/components/HeaderSearch/index.js diff --git a/packages/strapi-helper-plugin/lib/src/components/HeaderSearch/Clear.js b/packages/strapi-helper-plugin/lib/src/components/HeaderSearch/Clear.js new file mode 100644 index 0000000000..f8f5233481 --- /dev/null +++ b/packages/strapi-helper-plugin/lib/src/components/HeaderSearch/Clear.js @@ -0,0 +1,13 @@ +import styled from 'styled-components'; + +const Clear = styled.div` + display: flex; + flex-direction: column; + justify-content: center; + height: 13px; + margin: 25px auto 0; + border-radius: 50%; + cursor: pointer; +`; + +export default Clear; diff --git a/packages/strapi-helper-plugin/lib/src/components/HeaderSearch/ClearIcon.js b/packages/strapi-helper-plugin/lib/src/components/HeaderSearch/ClearIcon.js new file mode 100644 index 0000000000..1977c55a13 --- /dev/null +++ b/packages/strapi-helper-plugin/lib/src/components/HeaderSearch/ClearIcon.js @@ -0,0 +1,33 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +const Cross = ({ fill, height, width, ...rest }) => { + return ( + + + + ); +}; + +Cross.defaultProps = { + fill: '#b3b5b9', + height: '8', + width: '8', +}; + +Cross.propTypes = { + fill: PropTypes.string, + height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), +}; + +export default Cross; diff --git a/packages/strapi-plugin-content-manager/admin/src/components/Search/components.js b/packages/strapi-helper-plugin/lib/src/components/HeaderSearch/Wrapper.js similarity index 77% rename from packages/strapi-plugin-content-manager/admin/src/components/Search/components.js rename to packages/strapi-helper-plugin/lib/src/components/HeaderSearch/Wrapper.js index 5a79d131d9..5c158eba7e 100644 --- a/packages/strapi-plugin-content-manager/admin/src/components/Search/components.js +++ b/packages/strapi-helper-plugin/lib/src/components/HeaderSearch/Wrapper.js @@ -43,14 +43,4 @@ const Wrapper = styled.div` } `; -const Clear = styled.div` - display: flex; - flex-direction: column; - justify-content: center; - height: 13px; - margin: 25px auto 0; - border-radius: 50%; - cursor: pointer; -`; - -export { Clear, Wrapper }; +export default Wrapper; diff --git a/packages/strapi-helper-plugin/lib/src/components/HeaderSearch/index.js b/packages/strapi-helper-plugin/lib/src/components/HeaderSearch/index.js new file mode 100644 index 0000000000..4a0ff9c7f1 --- /dev/null +++ b/packages/strapi-helper-plugin/lib/src/components/HeaderSearch/index.js @@ -0,0 +1,49 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import SearchIcon from '../../svgs/Search'; +import SearchInfo from '../SearchInfo'; +import Clear from './Clear'; +import ClearIcon from './ClearIcon'; +import Wrapper from './Wrapper'; + +const HeaderSearch = ({ label, onChange, onClear, placeholder, value }) => { + return ( + +
+ +
+
+ + {value !== '' && ( + + + + )} +
+ +
+ ); +}; + +HeaderSearch.defaultProps = { + label: '', + onChange: () => {}, + onClear: () => {}, + placeholder: 'Search for an entry', + value: '', +}; + +HeaderSearch.propTypes = { + label: PropTypes.string, + onChange: PropTypes.func, + onClear: PropTypes.func, + placeholder: PropTypes.string, + value: PropTypes.string, +}; + +export default HeaderSearch; diff --git a/packages/strapi-helper-plugin/lib/src/index.js b/packages/strapi-helper-plugin/lib/src/index.js index 571b3ea670..a9f13fafa6 100644 --- a/packages/strapi-helper-plugin/lib/src/index.js +++ b/packages/strapi-helper-plugin/lib/src/index.js @@ -19,6 +19,7 @@ export { default as GlobalPagination } from './components/GlobalPagination'; export { default as HeaderNav } from './components/HeaderNav'; export { default as HeaderModal } from './components/HeaderModal'; export { default as HeaderModalTitle } from './components/HeaderModalTitle'; +export { default as HeaderSearch } from './components/HeaderSearch'; export { default as IcoContainer } from './components/IcoContainer'; export { default as InputAddon } from './components/InputAddon'; diff --git a/packages/strapi-plugin-content-manager/admin/src/components/Search/index.js b/packages/strapi-plugin-content-manager/admin/src/components/Search/index.js index 231f0154c0..2303aaa980 100644 --- a/packages/strapi-plugin-content-manager/admin/src/components/Search/index.js +++ b/packages/strapi-plugin-content-manager/admin/src/components/Search/index.js @@ -8,9 +8,8 @@ import React, { memo } from 'react'; import { isEmpty, upperFirst } from 'lodash'; import PropTypes from 'prop-types'; import { FormattedMessage } from 'react-intl'; -import { SearchIcon, SearchInfo } from 'strapi-helper-plugin'; -import Cross from '../../icons/Cross'; -import { Wrapper, Clear } from './components'; +import { HeaderSearch } from 'strapi-helper-plugin'; +import getTrad from '../../utils/getTrad'; const WAIT = 400; @@ -56,29 +55,17 @@ class Search extends React.Component { const { value } = this.state; return ( - -
- -
-
- - {message => ( - - )} - - {value !== '' && ( - - - - )} -
- -
+ + {placeholder => ( + + )} + ); } } diff --git a/packages/strapi-plugin-upload/admin/src/containers/List/index.js b/packages/strapi-plugin-upload/admin/src/containers/List/index.js index 42531616e2..ee46c95699 100644 --- a/packages/strapi-plugin-upload/admin/src/containers/List/index.js +++ b/packages/strapi-plugin-upload/admin/src/containers/List/index.js @@ -10,7 +10,7 @@ List.defaultProps = { }; List.propTypes = { - data: PropTypes.arrayOf(PropTypes.object), + data: PropTypes.array, }; export default List; From 4663ee8c161037b2a2a4469fe782941f5f3a01e3 Mon Sep 17 00:00:00 2001 From: soupette Date: Thu, 13 Feb 2020 10:13:47 +0100 Subject: [PATCH 006/492] Add search Signed-off-by: soupette --- .../{containers => components}/List/index.js | 0 .../admin/src/containers/HomePage/index.js | 25 +++++++++++++++---- .../admin/src/containers/HomePage/reducer.js | 4 +++ .../admin/src/translations/en.json | 4 ++- 4 files changed, 27 insertions(+), 6 deletions(-) rename packages/strapi-plugin-upload/admin/src/{containers => components}/List/index.js (100%) diff --git a/packages/strapi-plugin-upload/admin/src/containers/List/index.js b/packages/strapi-plugin-upload/admin/src/components/List/index.js similarity index 100% rename from packages/strapi-plugin-upload/admin/src/containers/List/index.js rename to packages/strapi-plugin-upload/admin/src/components/List/index.js diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js index a13496c32a..052808d3a6 100644 --- a/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js +++ b/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js @@ -1,21 +1,28 @@ import React, { useReducer } from 'react'; import { Header } from '@buffetjs/custom'; -import { useGlobalContext } from 'strapi-helper-plugin'; +import { HeaderSearch, useGlobalContext } from 'strapi-helper-plugin'; import getTrad from '../../utils/getTrad'; import Container from '../../components/Container'; -// import List from '../List'; +// import List from '../../components/List'; import getHeaderLabel from './utils/getHeaderLabel'; import init from './init'; import reducer, { initialState } from './reducer'; const HomePage = () => { const { formatMessage } = useGlobalContext(); - const [reducerState] = useReducer(reducer, initialState, init); - const { data, dataToDelete } = reducerState.toJS(); + const [reducerState, dispatch] = useReducer(reducer, initialState, init); + const { data, dataToDelete, _q } = reducerState.toJS(); + const pluginName = formatMessage({ id: getTrad('plugin.name') }); + + const handleClearSearch = () => { + dispatch({ + type: 'ON_CLEAR_SEARCH', + }); + }; const headerProps = { title: { - label: 'Media Library', + label: pluginName, }, content: formatMessage( { @@ -45,6 +52,14 @@ const HomePage = () => { return ( + {}} + onClear={handleClearSearch} + placeholder={formatMessage({ id: getTrad('search.placeholder') })} + value={_q} + />
{/* */} diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/reducer.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/reducer.js index bd21ed996e..222c822c20 100644 --- a/packages/strapi-plugin-upload/admin/src/containers/HomePage/reducer.js +++ b/packages/strapi-plugin-upload/admin/src/containers/HomePage/reducer.js @@ -3,10 +3,14 @@ import { fromJS } from 'immutable'; const initialState = fromJS({ data: [], dataToDelete: [], + // TODO: set to empty string + _q: 'super asset', }); const reducer = (state, action) => { switch (action.type) { + case 'ON_CLEAR_SEARCH': + return state.update('_q', () => ''); default: return state; } diff --git a/packages/strapi-plugin-upload/admin/src/translations/en.json b/packages/strapi-plugin-upload/admin/src/translations/en.json index ae1fba89ed..d6bc1a9ad6 100644 --- a/packages/strapi-plugin-upload/admin/src/translations/en.json +++ b/packages/strapi-plugin-upload/admin/src/translations/en.json @@ -3,6 +3,8 @@ "header.content.assets-empty": "No asset", "header.content.assets-multiple": "{number} assets", "header.content.assets-single": "1 asset", + "plugin.name": "Media Library", "plugin.description.long": "Media file management.", - "plugin.description.short": "Media file management." + "plugin.description.short": "Media file management.", + "search.placeholder": "Search for an asset..." } From 38a6ecbfc7910a47f92d496f708ebfb2e48e2fb2 Mon Sep 17 00:00:00 2001 From: soupette Date: Thu, 13 Feb 2020 10:41:47 +0100 Subject: [PATCH 007/492] Created CardImgWrapper Signed-off-by: soupette --- .../src/components/CardImgWrapper/index.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 packages/strapi-plugin-upload/admin/src/components/CardImgWrapper/index.js diff --git a/packages/strapi-plugin-upload/admin/src/components/CardImgWrapper/index.js b/packages/strapi-plugin-upload/admin/src/components/CardImgWrapper/index.js new file mode 100644 index 0000000000..0b054801bd --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/CardImgWrapper/index.js @@ -0,0 +1,19 @@ +import styled from 'styled-components'; +import PropTypes from 'prop-types'; + +const CardImgWrapper = styled.div` + height: ${({ isSmall }) => (isSmall ? '127px' : '156px')}; + width: ${({ isSmall }) => (isSmall ? '200px' : '245px')}; + border-radius: 2px; + background: #333740; +`; + +CardImgWrapper.defaultProps = { + isSmall: false, +}; + +CardImgWrapper.propTypes = { + isSmall: PropTypes.bool, +}; + +export default CardImgWrapper; From 81578007cd43f4ee0435696cc3173e8f94bdf7b9 Mon Sep 17 00:00:00 2001 From: soupette Date: Thu, 13 Feb 2020 11:17:32 +0100 Subject: [PATCH 008/492] Design controls Signed-off-by: soupette --- .../admin/src/translations/en.json | 1 + .../admin/src/containers/ListView/index.js | 14 ++------ .../src/components/AddFilterCTA/Wrapper.js | 35 +++++++++++++++++++ .../src/components/AddFilterCTA/index.js | 15 ++++++++ .../src/components/ControlsWrapper/index.js | 10 ++++++ .../admin/src/components/SelectAll/Wrapper.js | 20 +++++++++++ .../admin/src/components/SelectAll/index.js | 13 +++++++ .../admin/src/components/SortPicker/index.js | 14 ++++++++ .../admin/src/containers/HomePage/index.js | 11 ++++++ 9 files changed, 122 insertions(+), 11 deletions(-) create mode 100644 packages/strapi-plugin-upload/admin/src/components/AddFilterCTA/Wrapper.js create mode 100644 packages/strapi-plugin-upload/admin/src/components/AddFilterCTA/index.js create mode 100644 packages/strapi-plugin-upload/admin/src/components/ControlsWrapper/index.js create mode 100644 packages/strapi-plugin-upload/admin/src/components/SelectAll/Wrapper.js create mode 100644 packages/strapi-plugin-upload/admin/src/components/SelectAll/index.js create mode 100644 packages/strapi-plugin-upload/admin/src/components/SortPicker/index.js diff --git a/packages/strapi-admin/admin/src/translations/en.json b/packages/strapi-admin/admin/src/translations/en.json index 146117fd10..ca5dad83c7 100644 --- a/packages/strapi-admin/admin/src/translations/en.json +++ b/packages/strapi-admin/admin/src/translations/en.json @@ -164,6 +164,7 @@ "notification.error.layout": "Couldn't retrieve the layout", "request.error.model.unknown": "This model doesn't exist", "app.utils.delete": "Delete", + "app.utils.filters": "Filters", "HomePage.helmet.title": "Homepage", "HomePage.welcome.congrats": "Congrats!", "HomePage.welcome.congrats.content": "You are logged as the first administrator. To discover the powerful features provided by Strapi,", diff --git a/packages/strapi-plugin-content-manager/admin/src/containers/ListView/index.js b/packages/strapi-plugin-content-manager/admin/src/containers/ListView/index.js index 913efa4661..5838194c91 100644 --- a/packages/strapi-plugin-content-manager/admin/src/containers/ListView/index.js +++ b/packages/strapi-plugin-content-manager/admin/src/containers/ListView/index.js @@ -328,9 +328,7 @@ function ListView({ onClick={toggleFilterPickerState} > - + {getSearchParams().filters.map((filter, key) => ( span { + margin-left: 10px; + } + > svg { + margin: auto; + > g { + stroke: #282b2c; + } + } +`; + +export default Wrapper; diff --git a/packages/strapi-plugin-upload/admin/src/components/AddFilterCTA/index.js b/packages/strapi-plugin-upload/admin/src/components/AddFilterCTA/index.js new file mode 100644 index 0000000000..c3a3e39f77 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/AddFilterCTA/index.js @@ -0,0 +1,15 @@ +import React from 'react'; +import { FilterIcon } from 'strapi-helper-plugin'; +import { FormattedMessage } from 'react-intl'; +import Wrapper from './Wrapper'; + +const AddFilterCTA = () => { + return ( + + + + + ); +}; + +export default AddFilterCTA; diff --git a/packages/strapi-plugin-upload/admin/src/components/ControlsWrapper/index.js b/packages/strapi-plugin-upload/admin/src/components/ControlsWrapper/index.js new file mode 100644 index 0000000000..27d539817a --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/ControlsWrapper/index.js @@ -0,0 +1,10 @@ +import styled from 'styled-components'; + +const ControlsWrapper = styled.div` + display: flex; + > div { + margin-right: 10px; + } +`; + +export default ControlsWrapper; diff --git a/packages/strapi-plugin-upload/admin/src/components/SelectAll/Wrapper.js b/packages/strapi-plugin-upload/admin/src/components/SelectAll/Wrapper.js new file mode 100644 index 0000000000..276f9b7f9d --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/SelectAll/Wrapper.js @@ -0,0 +1,20 @@ +import styled from 'styled-components'; + +const Wrapper = styled.div` + display: flex; + justify-content: center; + height: 32px; + width: 35px; + background: #ffffff; + border: 1px solid #e3e9f3; + border-radius: 2px; + > div { + height: 100%; + margin: auto; + > label { + margin-left: 0; + } + } +`; + +export default Wrapper; diff --git a/packages/strapi-plugin-upload/admin/src/components/SelectAll/index.js b/packages/strapi-plugin-upload/admin/src/components/SelectAll/index.js new file mode 100644 index 0000000000..239d81a449 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/SelectAll/index.js @@ -0,0 +1,13 @@ +import React from 'react'; +import { Checkbox } from '@buffetjs/core'; +import Wrapper from './Wrapper'; + +const SelectAll = () => { + return ( + + + + ); +}; + +export default SelectAll; diff --git a/packages/strapi-plugin-upload/admin/src/components/SortPicker/index.js b/packages/strapi-plugin-upload/admin/src/components/SortPicker/index.js new file mode 100644 index 0000000000..98de763b48 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/SortPicker/index.js @@ -0,0 +1,14 @@ +import styled from 'styled-components'; + +const SortPicker = styled.div` + height: 32px; + padding: 0 10px; + background: #ffffff; + line-height: 30px; + border: 1px solid #e3e9f3; + border-radius: 2px; + font-size: 13px; + font-weight: 500; +`; + +export default SortPicker; diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js index 052808d3a6..7e02424ae8 100644 --- a/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js +++ b/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js @@ -3,10 +3,14 @@ import { Header } from '@buffetjs/custom'; import { HeaderSearch, useGlobalContext } from 'strapi-helper-plugin'; import getTrad from '../../utils/getTrad'; import Container from '../../components/Container'; +import ControlsWrapper from '../../components/ControlsWrapper'; +import SelectAll from '../../components/SelectAll'; +import SortPicker from '../../components/SortPicker'; // import List from '../../components/List'; import getHeaderLabel from './utils/getHeaderLabel'; import init from './init'; import reducer, { initialState } from './reducer'; +import AddFilterCTA from '../../components/AddFilterCTA'; const HomePage = () => { const { formatMessage } = useGlobalContext(); @@ -61,6 +65,13 @@ const HomePage = () => { value={_q} />
+ + + + Sort By + + + {/* */} ); From 6ec753ee65994f01de9e808bc5adf9864df411a5 Mon Sep 17 00:00:00 2001 From: soupette Date: Thu, 13 Feb 2020 12:48:13 +0100 Subject: [PATCH 009/492] Design EmptyList Signed-off-by: soupette --- .../admin/src/components/CardEmpty/Bar.js | 10 ++++ .../admin/src/components/CardEmpty/Wrapper.js | 7 +++ .../admin/src/components/CardEmpty/index.js | 16 +++++ .../src/components/CardImgWrapper/index.js | 4 +- .../admin/src/components/ListEmpty/Wrapper.js | 33 +++++++++++ .../admin/src/components/ListEmpty/index.js | 59 +++++++++++++++++++ .../ListEmpty/utils/generateRows.js | 12 ++++ .../utils/tests/generateRows.test.js | 29 +++++++++ .../admin/src/containers/HomePage/index.js | 5 ++ .../admin/src/translations/en.json | 2 + 10 files changed, 175 insertions(+), 2 deletions(-) create mode 100644 packages/strapi-plugin-upload/admin/src/components/CardEmpty/Bar.js create mode 100644 packages/strapi-plugin-upload/admin/src/components/CardEmpty/Wrapper.js create mode 100644 packages/strapi-plugin-upload/admin/src/components/CardEmpty/index.js create mode 100644 packages/strapi-plugin-upload/admin/src/components/ListEmpty/Wrapper.js create mode 100644 packages/strapi-plugin-upload/admin/src/components/ListEmpty/index.js create mode 100644 packages/strapi-plugin-upload/admin/src/components/ListEmpty/utils/generateRows.js create mode 100644 packages/strapi-plugin-upload/admin/src/components/ListEmpty/utils/tests/generateRows.test.js diff --git a/packages/strapi-plugin-upload/admin/src/components/CardEmpty/Bar.js b/packages/strapi-plugin-upload/admin/src/components/CardEmpty/Bar.js new file mode 100644 index 0000000000..9390bb23f0 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/CardEmpty/Bar.js @@ -0,0 +1,10 @@ +import styled from 'styled-components'; + +const Bar = styled.div` + height: 10px; + width: ${({ isSmall }) => (isSmall ? '64px' : '110px')}; + margin-top: ${({ isSmall }) => (isSmall ? '15px' : '8px')}; + background: #f6f6f6; +`; + +export default Bar; diff --git a/packages/strapi-plugin-upload/admin/src/components/CardEmpty/Wrapper.js b/packages/strapi-plugin-upload/admin/src/components/CardEmpty/Wrapper.js new file mode 100644 index 0000000000..f7e1aa9b57 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/CardEmpty/Wrapper.js @@ -0,0 +1,7 @@ +import styled from 'styled-components'; + +const Wrapper = styled.div` + margin-bottom: 35px; +`; + +export default Wrapper; diff --git a/packages/strapi-plugin-upload/admin/src/components/CardEmpty/index.js b/packages/strapi-plugin-upload/admin/src/components/CardEmpty/index.js new file mode 100644 index 0000000000..2ec65d3559 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/CardEmpty/index.js @@ -0,0 +1,16 @@ +import React from 'react'; +import CardImgWrapper from '../CardImgWrapper'; +import Bar from './Bar'; +import Wrapper from './Wrapper'; + +const CardEmpty = () => { + return ( + + + + + + ); +}; + +export default CardEmpty; diff --git a/packages/strapi-plugin-upload/admin/src/components/CardImgWrapper/index.js b/packages/strapi-plugin-upload/admin/src/components/CardImgWrapper/index.js index 0b054801bd..515ef8e804 100644 --- a/packages/strapi-plugin-upload/admin/src/components/CardImgWrapper/index.js +++ b/packages/strapi-plugin-upload/admin/src/components/CardImgWrapper/index.js @@ -3,9 +3,9 @@ import PropTypes from 'prop-types'; const CardImgWrapper = styled.div` height: ${({ isSmall }) => (isSmall ? '127px' : '156px')}; - width: ${({ isSmall }) => (isSmall ? '200px' : '245px')}; + min-width: ${({ isSmall }) => (isSmall ? '200px' : '245px')}; border-radius: 2px; - background: #333740; + background: ${({ withOverlay }) => (withOverlay ? '#F6F6F6' : '#333740')}; `; CardImgWrapper.defaultProps = { diff --git a/packages/strapi-plugin-upload/admin/src/components/ListEmpty/Wrapper.js b/packages/strapi-plugin-upload/admin/src/components/ListEmpty/Wrapper.js new file mode 100644 index 0000000000..8df9aa3aaf --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/ListEmpty/Wrapper.js @@ -0,0 +1,33 @@ +import styled from 'styled-components'; + +const Wrapper = styled.div` + position: relative; + margin-top: 25px; + padding: 0; + + .btn-wrapper { + position: absolute; + top: 161px; + // left: 50%; + height: 100px; + width: 100%; + margin-left: -50px; + margin-top: -50px; + text-align: center; + + > p { + line-height: 18px; + } + .title { + margin-bottom: 2px; + + font-size: 18px; + font-weight: 500; + } + .subtitle { + font-size: 13px; + } + } +`; + +export default Wrapper; diff --git a/packages/strapi-plugin-upload/admin/src/components/ListEmpty/index.js b/packages/strapi-plugin-upload/admin/src/components/ListEmpty/index.js new file mode 100644 index 0000000000..640422e655 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/ListEmpty/index.js @@ -0,0 +1,59 @@ +import React from 'react'; +import { Button } from '@buffetjs/core'; +import { FormattedMessage } from 'react-intl'; +import PropTypes from 'prop-types'; +import getTrad from '../../utils/getTrad'; +import generateRows from './utils/generateRows'; +import CardEmpty from '../CardEmpty'; +import Wrapper from './Wrapper'; + +const ListEmpty = ({ onClick }) => { + const rows = generateRows(4); + + return ( + + {rows.map(row => { + return ( +
+ {row.rows.map(key => { + return ( +
+ +
+ ); + })} +
+ ); + })} +
+ + {content =>

{content}

} +
+ + {content =>

{content}

} +
+ + + {label => ( +
+
+ ); +}; + +ListEmpty.defaultProps = { + onClick: () => {}, +}; + +ListEmpty.propTypes = { + onClick: PropTypes.func, +}; + +export default ListEmpty; diff --git a/packages/strapi-plugin-upload/admin/src/components/ListEmpty/utils/generateRows.js b/packages/strapi-plugin-upload/admin/src/components/ListEmpty/utils/generateRows.js new file mode 100644 index 0000000000..acb0cc743f --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/ListEmpty/utils/generateRows.js @@ -0,0 +1,12 @@ +const generateRows = numberOfRows => { + const rows = Array.from({ length: numberOfRows }, (_, i) => { + return { + key: i, + rows: Array.from({ length: 4 }, (_, i) => i), + }; + }); + + return rows; +}; + +export default generateRows; diff --git a/packages/strapi-plugin-upload/admin/src/components/ListEmpty/utils/tests/generateRows.test.js b/packages/strapi-plugin-upload/admin/src/components/ListEmpty/utils/tests/generateRows.test.js new file mode 100644 index 0000000000..18beeb22fc --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/ListEmpty/utils/tests/generateRows.test.js @@ -0,0 +1,29 @@ +import generateRows from '../generateRows'; + +describe('MEDIA LIBRARY | components | ListEmpty | utils', () => { + describe('generateRows', () => { + it('should return an array of object', () => { + const numberOfRows = 4; + const expected = [ + { + key: 0, + rows: [0, 1, 2, 3], + }, + { + key: 1, + rows: [0, 1, 2, 3], + }, + { + key: 2, + rows: [0, 1, 2, 3], + }, + { + key: 3, + rows: [0, 1, 2, 3], + }, + ]; + + expect(generateRows(numberOfRows)).toEqual(expected); + }); + }); +}); diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js index 7e02424ae8..f01ba9c634 100644 --- a/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js +++ b/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js @@ -7,6 +7,7 @@ import ControlsWrapper from '../../components/ControlsWrapper'; import SelectAll from '../../components/SelectAll'; import SortPicker from '../../components/SortPicker'; // import List from '../../components/List'; +import ListEmpty from '../../components/ListEmpty'; import getHeaderLabel from './utils/getHeaderLabel'; import init from './init'; import reducer, { initialState } from './reducer'; @@ -72,6 +73,10 @@ const HomePage = () => { + {}} + /> {/* */} ); diff --git a/packages/strapi-plugin-upload/admin/src/translations/en.json b/packages/strapi-plugin-upload/admin/src/translations/en.json index d6bc1a9ad6..de91113e0b 100644 --- a/packages/strapi-plugin-upload/admin/src/translations/en.json +++ b/packages/strapi-plugin-upload/admin/src/translations/en.json @@ -3,6 +3,8 @@ "header.content.assets-empty": "No asset", "header.content.assets-multiple": "{number} assets", "header.content.assets-single": "1 asset", + "list.assets-empty.title": "There is no asset yet", + "list.assets-empty.subtitle": "Add a first one to the list.", "plugin.name": "Media Library", "plugin.description.long": "Media file management.", "plugin.description.short": "Media file management.", From f8dc02994925e920a634b61501a40d6bd2ee757e Mon Sep 17 00:00:00 2001 From: soupette Date: Thu, 13 Feb 2020 12:53:05 +0100 Subject: [PATCH 010/492] Fix sticky header Signed-off-by: soupette --- .../admin/src/containers/HomePage/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js index f01ba9c634..ebc9368a3b 100644 --- a/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js +++ b/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js @@ -57,6 +57,7 @@ const HomePage = () => { return ( +
{ placeholder={formatMessage({ id: getTrad('search.placeholder') })} value={_q} /> -
+ From 1c247e43baa29db43260b0275f1fddfbe00f3650 Mon Sep 17 00:00:00 2001 From: soupette Date: Thu, 13 Feb 2020 13:01:54 +0100 Subject: [PATCH 011/492] Remove upload settings link from marketplace and plugins page Signed-off-by: soupette --- packages/strapi-admin/admin/src/components/PluginCard/index.js | 2 +- packages/strapi-admin/admin/src/components/Row/index.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/strapi-admin/admin/src/components/PluginCard/index.js b/packages/strapi-admin/admin/src/components/PluginCard/index.js index e8909684d4..f5950382ec 100644 --- a/packages/strapi-admin/admin/src/components/PluginCard/index.js +++ b/packages/strapi-admin/admin/src/components/PluginCard/index.js @@ -11,7 +11,7 @@ import { Button, PopUpWarning } from 'strapi-helper-plugin'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import Wrapper from './Wrapper'; -const PLUGINS_WITH_CONFIG = ['email', 'upload']; +const PLUGINS_WITH_CONFIG = ['email']; /* eslint-disable react/no-unused-state */ class PluginCard extends React.Component { diff --git a/packages/strapi-admin/admin/src/components/Row/index.js b/packages/strapi-admin/admin/src/components/Row/index.js index 4db6d43cde..25b81fd26d 100644 --- a/packages/strapi-admin/admin/src/components/Row/index.js +++ b/packages/strapi-admin/admin/src/components/Row/index.js @@ -20,7 +20,7 @@ import { import Action from './Action'; import Content from './Content'; -const PLUGINS_WITH_CONFIG = ['email', 'upload']; +const PLUGINS_WITH_CONFIG = ['email']; /* eslint-disable */ From 598eaeadf2423cb91920179e148fd3feda377542 Mon Sep 17 00:00:00 2001 From: soupette Date: Thu, 13 Feb 2020 13:41:47 +0100 Subject: [PATCH 012/492] Fix empty list number of items Signed-off-by: soupette --- .../admin/src/components/ListEmpty/index.js | 2 +- .../admin/src/components/ListEmpty/utils/generateRows.js | 2 +- .../src/components/ListEmpty/utils/tests/generateRows.test.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/strapi-plugin-upload/admin/src/components/ListEmpty/index.js b/packages/strapi-plugin-upload/admin/src/components/ListEmpty/index.js index 640422e655..03648a831a 100644 --- a/packages/strapi-plugin-upload/admin/src/components/ListEmpty/index.js +++ b/packages/strapi-plugin-upload/admin/src/components/ListEmpty/index.js @@ -8,7 +8,7 @@ import CardEmpty from '../CardEmpty'; import Wrapper from './Wrapper'; const ListEmpty = ({ onClick }) => { - const rows = generateRows(4); + const rows = generateRows(3); return ( diff --git a/packages/strapi-plugin-upload/admin/src/components/ListEmpty/utils/generateRows.js b/packages/strapi-plugin-upload/admin/src/components/ListEmpty/utils/generateRows.js index acb0cc743f..8e7485de45 100644 --- a/packages/strapi-plugin-upload/admin/src/components/ListEmpty/utils/generateRows.js +++ b/packages/strapi-plugin-upload/admin/src/components/ListEmpty/utils/generateRows.js @@ -2,7 +2,7 @@ const generateRows = numberOfRows => { const rows = Array.from({ length: numberOfRows }, (_, i) => { return { key: i, - rows: Array.from({ length: 4 }, (_, i) => i), + rows: Array.from({ length: i === numberOfRows - 1 ? 3 : 4 }, (_, i) => i), }; }); diff --git a/packages/strapi-plugin-upload/admin/src/components/ListEmpty/utils/tests/generateRows.test.js b/packages/strapi-plugin-upload/admin/src/components/ListEmpty/utils/tests/generateRows.test.js index 18beeb22fc..1265baae08 100644 --- a/packages/strapi-plugin-upload/admin/src/components/ListEmpty/utils/tests/generateRows.test.js +++ b/packages/strapi-plugin-upload/admin/src/components/ListEmpty/utils/tests/generateRows.test.js @@ -19,7 +19,7 @@ describe('MEDIA LIBRARY | components | ListEmpty | utils', () => { }, { key: 3, - rows: [0, 1, 2, 3], + rows: [0, 1, 2], }, ]; From 39c8df3ce8b7829c8bcd34200391b87f3c276790 Mon Sep 17 00:00:00 2001 From: soupette Date: Thu, 13 Feb 2020 15:51:13 +0100 Subject: [PATCH 013/492] Init Modal Signed-off-by: soupette --- .../admin/src/components/ModalNav/index.js | 24 +++++++ .../admin/src/components/NavLink/Wrapper.js | 19 +++++ .../admin/src/components/NavLink/index.js | 47 +++++++++++++ .../admin/src/containers/HomePage/index.js | 12 +++- .../admin/src/containers/UploadModal/index.js | 70 +++++++++++++++++++ .../admin/src/translations/en.json | 3 + 6 files changed, 172 insertions(+), 3 deletions(-) create mode 100644 packages/strapi-plugin-upload/admin/src/components/ModalNav/index.js create mode 100644 packages/strapi-plugin-upload/admin/src/components/NavLink/Wrapper.js create mode 100644 packages/strapi-plugin-upload/admin/src/components/NavLink/index.js create mode 100644 packages/strapi-plugin-upload/admin/src/containers/UploadModal/index.js diff --git a/packages/strapi-plugin-upload/admin/src/components/ModalNav/index.js b/packages/strapi-plugin-upload/admin/src/components/ModalNav/index.js new file mode 100644 index 0000000000..246b835e81 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/ModalNav/index.js @@ -0,0 +1,24 @@ +/** + * + * ModalNav + * + */ + +import styled from 'styled-components'; + +const ModalNav = styled.div` + display: flex; + height: 3.8rem; + padding-top: 0.6rem; + color: #9ea7b8; + font-size: 1.2rem; + font-weight: 500; + letter-spacing: 0.7px; + text-transform: uppercase; + + > div:last-child { + margin-left: 3rem; + } +`; + +export default ModalNav; diff --git a/packages/strapi-plugin-upload/admin/src/components/NavLink/Wrapper.js b/packages/strapi-plugin-upload/admin/src/components/NavLink/Wrapper.js new file mode 100644 index 0000000000..0d41e46f32 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/NavLink/Wrapper.js @@ -0,0 +1,19 @@ +import styled, { css } from 'styled-components'; + +const Wrapper = styled.div` + ${({ isActive }) => { + if (isActive) { + return css` + height: 3rem; + color: #007eff; + font-weight: 600; + border-bottom: 2px solid #007eff; + z-index: 99; + `; + } + + return ''; + }} +`; + +export default Wrapper; diff --git a/packages/strapi-plugin-upload/admin/src/components/NavLink/index.js b/packages/strapi-plugin-upload/admin/src/components/NavLink/index.js new file mode 100644 index 0000000000..8fc8001478 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/NavLink/index.js @@ -0,0 +1,47 @@ +/** + * + * HeaderNavLink + * + */ + +import React from 'react'; +import PropTypes from 'prop-types'; +import { FormattedMessage } from 'react-intl'; +import getTrad from '../../utils/getTrad'; +// import pluginId from '../../pluginId'; +import Wrapper from './Wrapper'; + +/* istanbul ignore next */ +function HeaderNavLink({ isDisabled, to, isActive, onClick }) { + return ( + { + if (isDisabled) { + e.preventDefault(); + + return; + } + onClick(to); + }} + > + + + ); +} + +HeaderNavLink.defaultProps = { + isActive: false, + isDisabled: false, + onClick: () => {}, +}; + +HeaderNavLink.propTypes = { + to: PropTypes.string.isRequired, + isActive: PropTypes.bool, + isDisabled: PropTypes.bool, + onClick: PropTypes.func, +}; + +export default HeaderNavLink; diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js index ebc9368a3b..4c908bf764 100644 --- a/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js +++ b/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js @@ -1,4 +1,4 @@ -import React, { useReducer } from 'react'; +import React, { useReducer, useState } from 'react'; import { Header } from '@buffetjs/custom'; import { HeaderSearch, useGlobalContext } from 'strapi-helper-plugin'; import getTrad from '../../utils/getTrad'; @@ -8,6 +8,7 @@ import SelectAll from '../../components/SelectAll'; import SortPicker from '../../components/SortPicker'; // import List from '../../components/List'; import ListEmpty from '../../components/ListEmpty'; +import UploadModal from '../UploadModal'; import getHeaderLabel from './utils/getHeaderLabel'; import init from './init'; import reducer, { initialState } from './reducer'; @@ -16,9 +17,13 @@ import AddFilterCTA from '../../components/AddFilterCTA'; const HomePage = () => { const { formatMessage } = useGlobalContext(); const [reducerState, dispatch] = useReducer(reducer, initialState, init); + const [isOpen, setIsOpen] = useState(true); const { data, dataToDelete, _q } = reducerState.toJS(); const pluginName = formatMessage({ id: getTrad('plugin.name') }); + const handleClickToggleModal = () => { + setIsOpen(prev => !prev); + }; const handleClearSearch = () => { dispatch({ type: 'ON_CLEAR_SEARCH', @@ -49,7 +54,7 @@ const HomePage = () => { disabled: false, color: 'primary', label: formatMessage({ id: getTrad('header.actions.upload-assets') }), - onClick: () => {}, + onClick: handleClickToggleModal, type: 'button', }, ], @@ -76,9 +81,10 @@ const HomePage = () => { {}} + onClick={handleClickToggleModal} /> {/* */} + ); }; diff --git a/packages/strapi-plugin-upload/admin/src/containers/UploadModal/index.js b/packages/strapi-plugin-upload/admin/src/containers/UploadModal/index.js new file mode 100644 index 0000000000..0a1b86909d --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/containers/UploadModal/index.js @@ -0,0 +1,70 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { + HeaderModal, + HeaderModalTitle, + Modal, + ModalBody, + ModalFooter, + ModalForm, +} from 'strapi-helper-plugin'; +import { Button } from '@buffetjs/core'; +import { FormattedMessage } from 'react-intl'; +import getTrad from '../../utils/getTrad'; +import ModalNav from '../../components/ModalNav'; +import NavLink from '../../components/NavLink'; + +const UploadModal = ({ isOpen, onToggle }) => { + return ( + + +
+ + + +
+
+ +
+ + + + +
+
+
+
+ + +
+
+
+

COMING SOON

+
+
+
+
+
+ + +
+ +
+
+
+
+ ); +}; + +UploadModal.defaultProps = { + onToggle: () => {}, +}; + +UploadModal.propTypes = { + isOpen: PropTypes.bool.isRequired, + onToggle: PropTypes.func, +}; + +export default UploadModal; diff --git a/packages/strapi-plugin-upload/admin/src/translations/en.json b/packages/strapi-plugin-upload/admin/src/translations/en.json index de91113e0b..b6a367a885 100644 --- a/packages/strapi-plugin-upload/admin/src/translations/en.json +++ b/packages/strapi-plugin-upload/admin/src/translations/en.json @@ -5,6 +5,9 @@ "header.content.assets-single": "1 asset", "list.assets-empty.title": "There is no asset yet", "list.assets-empty.subtitle": "Add a first one to the list.", + "modal.header.browse": "Upload assets", + "modal.nav.computer": "from computer", + "modal.nav.url": "from url", "plugin.name": "Media Library", "plugin.description.long": "Media file management.", "plugin.description.short": "Media file management.", From 463d3b1f2cf60aae7bee12c59889dd7f6118cbbe Mon Sep 17 00:00:00 2001 From: Virginie Ky Date: Fri, 14 Feb 2020 17:44:54 +0100 Subject: [PATCH 014/492] card component with ui Signed-off-by: Virginie Ky --- .../admin/src/components/Card/Description.js | 8 ++++ .../admin/src/components/Card/Title.js | 8 ++++ .../admin/src/components/Card/Wrapper.js | 8 ++++ .../admin/src/components/Card/index.js | 42 +++++++++++++++++++ .../admin/src/components/CardEmpty/index.js | 2 +- .../src/components/CardImgWrapper/index.js | 9 +++- .../admin/src/components/List/index.js | 19 ++++++++- .../admin/src/components/ListEmpty/Wrapper.js | 3 -- .../admin/src/components/ListEmpty/index.js | 2 +- .../admin/src/containers/HomePage/index.js | 4 +- 10 files changed, 95 insertions(+), 10 deletions(-) create mode 100644 packages/strapi-plugin-upload/admin/src/components/Card/Description.js create mode 100644 packages/strapi-plugin-upload/admin/src/components/Card/Title.js create mode 100644 packages/strapi-plugin-upload/admin/src/components/Card/Wrapper.js create mode 100644 packages/strapi-plugin-upload/admin/src/components/Card/index.js diff --git a/packages/strapi-plugin-upload/admin/src/components/Card/Description.js b/packages/strapi-plugin-upload/admin/src/components/Card/Description.js new file mode 100644 index 0000000000..da83d87be6 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/Card/Description.js @@ -0,0 +1,8 @@ +import styled from 'styled-components'; + +const Description = styled.p` + font-size: 11px; + color: #b3b5b9; +`; + +export default Description; diff --git a/packages/strapi-plugin-upload/admin/src/components/Card/Title.js b/packages/strapi-plugin-upload/admin/src/components/Card/Title.js new file mode 100644 index 0000000000..2d55fe5198 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/Card/Title.js @@ -0,0 +1,8 @@ +import styled from 'styled-components'; + +const Title = styled.p` + font-weight: 600; + color: #333740; +`; + +export default Title; diff --git a/packages/strapi-plugin-upload/admin/src/components/Card/Wrapper.js b/packages/strapi-plugin-upload/admin/src/components/Card/Wrapper.js new file mode 100644 index 0000000000..1c3a120d7d --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/Card/Wrapper.js @@ -0,0 +1,8 @@ +import styled from 'styled-components'; + +const Wrapper = styled.div` + width: 100%; + margin-bottom: 30px; +`; + +export default Wrapper; diff --git a/packages/strapi-plugin-upload/admin/src/components/Card/index.js b/packages/strapi-plugin-upload/admin/src/components/Card/index.js new file mode 100644 index 0000000000..e97f6fb4e6 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/Card/index.js @@ -0,0 +1,42 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +import CardImgWrapper from '../CardImgWrapper'; +import Wrapper from './Wrapper'; +import Title from './Title'; +import Description from './Description'; + +const Card = ({ abort, error, file, isSmall, isUploading }) => { + const newFile = new File([''], 'img.png'); + console.log(newFile); + + return ( + +
+ + + + Ma photo + Ma photo +
+
+ ); +}; + +Card.defaultProps = { + abort: () => {}, + error: '', + file: null, + isSmall: false, + isUploading: false, +}; + +Card.propTypes = { + abort: PropTypes.func, + error: PropTypes.string, + file: PropTypes.object, + isSmall: PropTypes.bool, + isUploading: PropTypes.bool, +}; + +export default Card; diff --git a/packages/strapi-plugin-upload/admin/src/components/CardEmpty/index.js b/packages/strapi-plugin-upload/admin/src/components/CardEmpty/index.js index 2ec65d3559..b0e5d2fc96 100644 --- a/packages/strapi-plugin-upload/admin/src/components/CardEmpty/index.js +++ b/packages/strapi-plugin-upload/admin/src/components/CardEmpty/index.js @@ -6,7 +6,7 @@ import Wrapper from './Wrapper'; const CardEmpty = () => { return ( - + diff --git a/packages/strapi-plugin-upload/admin/src/components/CardImgWrapper/index.js b/packages/strapi-plugin-upload/admin/src/components/CardImgWrapper/index.js index 515ef8e804..2028096e0b 100644 --- a/packages/strapi-plugin-upload/admin/src/components/CardImgWrapper/index.js +++ b/packages/strapi-plugin-upload/admin/src/components/CardImgWrapper/index.js @@ -2,18 +2,23 @@ import styled from 'styled-components'; import PropTypes from 'prop-types'; const CardImgWrapper = styled.div` - height: ${({ isSmall }) => (isSmall ? '127px' : '156px')}; - min-width: ${({ isSmall }) => (isSmall ? '200px' : '245px')}; + width: 100%; + height: 0; + padding-top: ${({ isSmall }) => + isSmall ? 'calc(156 / 245 * 100%)' : 'calc(397 / 431 * 100%)'}; border-radius: 2px; background: ${({ withOverlay }) => (withOverlay ? '#F6F6F6' : '#333740')}; + overflow: hidden; `; CardImgWrapper.defaultProps = { isSmall: false, + withOverlay: false, }; CardImgWrapper.propTypes = { isSmall: PropTypes.bool, + withOverlay: PropTypes.bool, }; export default CardImgWrapper; diff --git a/packages/strapi-plugin-upload/admin/src/components/List/index.js b/packages/strapi-plugin-upload/admin/src/components/List/index.js index ee46c95699..d8d44b99f4 100644 --- a/packages/strapi-plugin-upload/admin/src/components/List/index.js +++ b/packages/strapi-plugin-upload/admin/src/components/List/index.js @@ -1,8 +1,25 @@ import React from 'react'; import PropTypes from 'prop-types'; +import Card from '../Card'; + const List = ({ data }) => { - return
Coming soon {data.length}
; + return ( +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ ); }; List.defaultProps = { diff --git a/packages/strapi-plugin-upload/admin/src/components/ListEmpty/Wrapper.js b/packages/strapi-plugin-upload/admin/src/components/ListEmpty/Wrapper.js index 8df9aa3aaf..88e6834507 100644 --- a/packages/strapi-plugin-upload/admin/src/components/ListEmpty/Wrapper.js +++ b/packages/strapi-plugin-upload/admin/src/components/ListEmpty/Wrapper.js @@ -8,13 +8,10 @@ const Wrapper = styled.div` .btn-wrapper { position: absolute; top: 161px; - // left: 50%; height: 100px; width: 100%; - margin-left: -50px; margin-top: -50px; text-align: center; - > p { line-height: 18px; } diff --git a/packages/strapi-plugin-upload/admin/src/components/ListEmpty/index.js b/packages/strapi-plugin-upload/admin/src/components/ListEmpty/index.js index 03648a831a..6f41b2fb48 100644 --- a/packages/strapi-plugin-upload/admin/src/components/ListEmpty/index.js +++ b/packages/strapi-plugin-upload/admin/src/components/ListEmpty/index.js @@ -17,7 +17,7 @@ const ListEmpty = ({ onClick }) => {
{row.rows.map(key => { return ( -
+
); diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js index ebc9368a3b..b4fff092c4 100644 --- a/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js +++ b/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js @@ -6,7 +6,7 @@ import Container from '../../components/Container'; import ControlsWrapper from '../../components/ControlsWrapper'; import SelectAll from '../../components/SelectAll'; import SortPicker from '../../components/SortPicker'; -// import List from '../../components/List'; +import List from '../../components/List'; import ListEmpty from '../../components/ListEmpty'; import getHeaderLabel from './utils/getHeaderLabel'; import init from './init'; @@ -78,7 +78,7 @@ const HomePage = () => { // TODO onClick={() => {}} /> - {/* */} + ); }; From 7b752d1ce3710661c3dc5e58c4d0e7d9e997c4aa Mon Sep 17 00:00:00 2001 From: soupette Date: Mon, 17 Feb 2020 07:54:37 +0100 Subject: [PATCH 015/492] Fix PR feedback Signed-off-by: soupette --- .../lib/src/components/HeaderSearch/ClearIcon.js | 8 ++++---- .../lib/src/components/SearchInfo/Wrapper.js | 1 - .../admin/src/components/Container/index.js | 2 +- .../admin/src/components/ListEmpty/Wrapper.js | 1 - 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/strapi-helper-plugin/lib/src/components/HeaderSearch/ClearIcon.js b/packages/strapi-helper-plugin/lib/src/components/HeaderSearch/ClearIcon.js index 1977c55a13..a8364044c4 100644 --- a/packages/strapi-helper-plugin/lib/src/components/HeaderSearch/ClearIcon.js +++ b/packages/strapi-helper-plugin/lib/src/components/HeaderSearch/ClearIcon.js @@ -1,7 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; -const Cross = ({ fill, height, width, ...rest }) => { +const ClearIcon = ({ fill, height, width, ...rest }) => { return ( { ); }; -Cross.defaultProps = { +ClearIcon.defaultProps = { fill: '#b3b5b9', height: '8', width: '8', }; -Cross.propTypes = { +ClearIcon.propTypes = { fill: PropTypes.string, height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), }; -export default Cross; +export default ClearIcon; diff --git a/packages/strapi-helper-plugin/lib/src/components/SearchInfo/Wrapper.js b/packages/strapi-helper-plugin/lib/src/components/SearchInfo/Wrapper.js index 80197e6414..5d41ff74eb 100644 --- a/packages/strapi-helper-plugin/lib/src/components/SearchInfo/Wrapper.js +++ b/packages/strapi-helper-plugin/lib/src/components/SearchInfo/Wrapper.js @@ -11,7 +11,6 @@ const Wrapper = styled.div` background: rgba(0, 126, 255, 0.08); border: 1px solid rgba(0, 126, 255, 0.24); border-radius: 2px; - line-height: 22px; color: #007eff; font-size: 13px; font-weight: 400; diff --git a/packages/strapi-plugin-upload/admin/src/components/Container/index.js b/packages/strapi-plugin-upload/admin/src/components/Container/index.js index 74a5fae189..42b9ae02eb 100644 --- a/packages/strapi-plugin-upload/admin/src/components/Container/index.js +++ b/packages/strapi-plugin-upload/admin/src/components/Container/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components'; const Container = styled.div` - padding: 18px 30px 18px 30px; + padding: 18px 30px; `; export default Container; diff --git a/packages/strapi-plugin-upload/admin/src/components/ListEmpty/Wrapper.js b/packages/strapi-plugin-upload/admin/src/components/ListEmpty/Wrapper.js index 8df9aa3aaf..418b94cb51 100644 --- a/packages/strapi-plugin-upload/admin/src/components/ListEmpty/Wrapper.js +++ b/packages/strapi-plugin-upload/admin/src/components/ListEmpty/Wrapper.js @@ -8,7 +8,6 @@ const Wrapper = styled.div` .btn-wrapper { position: absolute; top: 161px; - // left: 50%; height: 100px; width: 100%; margin-left: -50px; From fd48b7ef4fd40817cd38b7d5c6cf0e67d49ff0ab Mon Sep 17 00:00:00 2001 From: soupette Date: Mon, 17 Feb 2020 08:56:28 +0100 Subject: [PATCH 016/492] Created Cloud icon Signed-off-by: soupette --- .../admin/src/containers/UploadModal/index.js | 9 +++- .../admin/src/icons/Cloud/index.js | 44 +++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 packages/strapi-plugin-upload/admin/src/icons/Cloud/index.js diff --git a/packages/strapi-plugin-upload/admin/src/containers/UploadModal/index.js b/packages/strapi-plugin-upload/admin/src/containers/UploadModal/index.js index 0a1b86909d..c3e9fb77ae 100644 --- a/packages/strapi-plugin-upload/admin/src/containers/UploadModal/index.js +++ b/packages/strapi-plugin-upload/admin/src/containers/UploadModal/index.js @@ -13,10 +13,16 @@ import { FormattedMessage } from 'react-intl'; import getTrad from '../../utils/getTrad'; import ModalNav from '../../components/ModalNav'; import NavLink from '../../components/NavLink'; +import Cloud from '../../icons/Cloud'; const UploadModal = ({ isOpen, onToggle }) => { return ( - + {}} + >
@@ -40,6 +46,7 @@ const UploadModal = ({ isOpen, onToggle }) => {

COMING SOON

+
diff --git a/packages/strapi-plugin-upload/admin/src/icons/Cloud/index.js b/packages/strapi-plugin-upload/admin/src/icons/Cloud/index.js new file mode 100644 index 0000000000..6e4284ac06 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/icons/Cloud/index.js @@ -0,0 +1,44 @@ +import React from 'react'; + +const Cloud = props => { + return ( + + + + + + + + + + + + + + + + + ); +}; + +export default Cloud; From 774dab6fd0eb31fbd2e73749bf7d7c6a84cbd24e Mon Sep 17 00:00:00 2001 From: soupette Date: Mon, 17 Feb 2020 11:09:45 +0100 Subject: [PATCH 017/492] Design input file dropzone Signed-off-by: soupette --- .../admin/src/components/InputFile/Input.js | 7 ++ .../admin/src/components/InputFile/Label.js | 41 +++++++++ .../admin/src/components/InputFile/P.js | 13 +++ .../admin/src/components/InputFile/index.js | 88 +++++++++++++++++++ .../admin/src/containers/UploadModal/index.js | 7 +- .../admin/src/translations/en.json | 3 + 6 files changed, 155 insertions(+), 4 deletions(-) create mode 100644 packages/strapi-plugin-upload/admin/src/components/InputFile/Input.js create mode 100644 packages/strapi-plugin-upload/admin/src/components/InputFile/Label.js create mode 100644 packages/strapi-plugin-upload/admin/src/components/InputFile/P.js create mode 100644 packages/strapi-plugin-upload/admin/src/components/InputFile/index.js diff --git a/packages/strapi-plugin-upload/admin/src/components/InputFile/Input.js b/packages/strapi-plugin-upload/admin/src/components/InputFile/Input.js new file mode 100644 index 0000000000..a6f746d73f --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/InputFile/Input.js @@ -0,0 +1,7 @@ +import styled from 'styled-components'; + +const Input = styled.input` + display: none; +`; + +export default Input; diff --git a/packages/strapi-plugin-upload/admin/src/components/InputFile/Label.js b/packages/strapi-plugin-upload/admin/src/components/InputFile/Label.js new file mode 100644 index 0000000000..f190705299 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/InputFile/Label.js @@ -0,0 +1,41 @@ +import styled from 'styled-components'; +import PropTypes from 'prop-types'; + +const Label = styled.label` + position: relative; + height: 204px; + width: 100%; + padding-top: 46px; + border: 2px dashed #e3e9f3; + border-radius: 2px; + text-align: center; + + .dragzone { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + } + + ${({ isDragging }) => { + if (isDragging) { + return ` + background-color: rgba(28, 93, 231, 0.01) !important; + border: 2px dashed rgba(28, 93, 231, 0.1) !important; + `; + } + + return ''; + }} +`; + +Label.defaultProps = { + isDragging: false, +}; + +Label.propTypes = { + isDragging: PropTypes.bool, +}; + +export default Label; diff --git a/packages/strapi-plugin-upload/admin/src/components/InputFile/P.js b/packages/strapi-plugin-upload/admin/src/components/InputFile/P.js new file mode 100644 index 0000000000..27dc095b8a --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/InputFile/P.js @@ -0,0 +1,13 @@ +import styled from 'styled-components'; + +const P = styled.p` + margin-top: 5px; + font-size: 13px; + font-weight: 500; + + .bold { + font-weight: 700; + } +`; + +export default P; diff --git a/packages/strapi-plugin-upload/admin/src/components/InputFile/index.js b/packages/strapi-plugin-upload/admin/src/components/InputFile/index.js new file mode 100644 index 0000000000..ac62a9f798 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/components/InputFile/index.js @@ -0,0 +1,88 @@ +import React, { createRef, useState } from 'react'; +import PropTypes from 'prop-types'; +import { Button } from '@buffetjs/core'; +import { useGlobalContext } from 'strapi-helper-plugin'; +import getTrad from '../../utils/getTrad'; +import Cloud from '../../icons/Cloud'; +import Label from './Label'; +import Input from './Input'; +import P from './P'; + +const InputFile = ({ name, onChange }) => { + const [isDragging, setIsDragging] = useState(false); + const { formatMessage } = useGlobalContext(); + const ref = createRef(); + + const handleAllowDrop = e => e.preventDefault(); + + const handleChange = ({ target: { files } }) => { + onChange({ target: { name, value: files } }); + }; + + const handleDragEnter = () => { + setIsDragging(true); + }; + + const handleDragLeave = () => { + setIsDragging(false); + }; + + const handleDrop = e => { + e.preventDefault(); + + setIsDragging(false); + onChange({ target: { name, value: e.dataTransfer.files } }); + }; + + return ( + <> +