strapi-plugin-config-sync/admin/src/containers/ConfigPage/index.js

32 lines
1.1 KiB
JavaScript
Raw Normal View History

2021-03-20 16:51:34 +01:00
import React, { useEffect, useState } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { Map } from 'immutable';
import { getAllDatabaseConfig, getAllFileConfig } from '../../state/actions/Config';
import ConfigList from '../../components/ConfigList';
2021-03-20 15:07:10 +01:00
import ActionButtons from '../../components/ActionButtons';
2021-03-20 16:51:34 +01:00
import difference from '../../helpers/getObjectDiff';
2021-03-20 00:54:18 +01:00
const ConfigPage = () => {
const dispatch = useDispatch();
2021-03-20 16:51:34 +01:00
const [isLoading, setIsLoading] = useState(true);
const fileConfig = useSelector((state) => state.getIn(['config', 'fileConfig']), Map());
const databaseConfig = useSelector((state) => state.getIn(['config', 'databaseConfig']), Map());
useEffect(() => {
dispatch(getAllDatabaseConfig());
dispatch(getAllFileConfig());
2021-03-20 16:51:34 +01:00
setIsLoading(false);
}, []);
2021-03-20 16:51:34 +01:00
const diff = difference(fileConfig.toJS(), databaseConfig.toJS());
return (
<div>
2021-03-20 16:51:34 +01:00
<ActionButtons diff={diff} />
<ConfigList fileConfig={fileConfig} databaseConfig={databaseConfig} isLoading={isLoading} diff={diff} />
</div>
);
2021-03-20 00:54:18 +01:00
}
export default ConfigPage;