Fix & connectors folder

This commit is contained in:
elforjani3
2020-06-01 19:21:47 +02:00
parent c1659d191f
commit e1f56c873b
51 changed files with 665 additions and 632 deletions

View File

@@ -9,7 +9,6 @@ import PrivateRoute from 'components/PrivateRoute';
import Authentication from 'components/Authentication'; import Authentication from 'components/Authentication';
import Dashboard from 'components/Dashboard/Dashboard'; import Dashboard from 'components/Dashboard/Dashboard';
import GlobalErrors from 'containers/GlobalErrors/GlobalErrors'; import GlobalErrors from 'containers/GlobalErrors/GlobalErrors';
import AuthenticationDialogs from 'containers/Authentication/AuthenticationDialogs';
import messages from 'lang/en'; import messages from 'lang/en';
import 'style/App.scss'; import 'style/App.scss';
@@ -30,7 +29,6 @@ function App({ locale }) {
<Switch> <Switch>
<Route path={'/auth'}> <Route path={'/auth'}>
<Authentication /> <Authentication />
<AuthenticationDialogs />
</Route> </Route>
<Route path={'/'}> <Route path={'/'}>

View File

@@ -11,7 +11,7 @@ import { FormattedMessage as T } from 'react-intl';
import DashboardTopbarUser from 'components/Dashboard/TopbarUser'; import DashboardTopbarUser from 'components/Dashboard/TopbarUser';
import DashboardBreadcrumbs from 'components/Dashboard/DashboardBreadcrumbs'; import DashboardBreadcrumbs from 'components/Dashboard/DashboardBreadcrumbs';
import SearchConnect from 'connectors/Search.connect'; import withSearch from 'containers/GeneralSearch/withSearch'
import Icon from 'components/Icon'; import Icon from 'components/Icon';
import { compose } from 'utils'; import { compose } from 'utils';
@@ -113,6 +113,6 @@ const mapStateToProps = (state) => ({
}); });
export default compose( export default compose(
SearchConnect, withSearch,
connect(mapStateToProps) connect(mapStateToProps)
)(DashboardTopbar); )(DashboardTopbar);

View File

@@ -1,60 +1,60 @@
import { connect } from 'react-redux'; // import { connect } from 'react-redux';
import t from 'store/types'; // import t from 'store/types';
import { // import {
fetchAccountTypes, // fetchAccountTypes,
fetchAccountsList, // fetchAccountsList,
deleteAccount, // deleteAccount,
inactiveAccount, // inactiveAccount,
fetchAccountsTable, // fetchAccountsTable,
submitAccount, // submitAccount,
fetchAccount, // fetchAccount,
deleteBulkAccounts, // deleteBulkAccounts,
} from 'store/accounts/accounts.actions'; // } from 'store/accounts/accounts.actions';
import { // import {
getAccountsItems, // getAccountsItems,
} from 'store/accounts/accounts.selectors'; // } from 'store/accounts/accounts.selectors';
import { // import {
getResourceViews, // getResourceViews,
} from 'store/customViews/customViews.selectors'; // } from 'store/customViews/customViews.selectors';
import { // import {
getItemById // getItemById
} from 'store/selectors'; // } from 'store/selectors';
const mapStateToProps = (state, props) => ({ // const mapStateToProps = (state, props) => ({
views: getResourceViews(state, 'accounts'), // views: getResourceViews(state, 'accounts'),
accounts: getAccountsItems(state, state.accounts.currentViewId), // accounts: getAccountsItems(state, state.accounts.currentViewId),
accountsTypes: state.accounts.accountsTypes, // accountsTypes: state.accounts.accountsTypes,
tableQuery: state.accounts.tableQuery, // tableQuery: state.accounts.tableQuery,
accountsLoading: state.accounts.loading, // accountsLoading: state.accounts.loading,
accountErrors: state.accounts.errors, // accountErrors: state.accounts.errors,
getAccountById: (id) => getItemById(state.accounts.items, id), // getAccountById: (id) => getItemById(state.accounts.items, id),
}); // });
const mapActionsToProps = (dispatch) => ({ // const mapActionsToProps = (dispatch) => ({
requestFetchAccounts: (query) => dispatch(fetchAccountsList({ query })), // requestFetchAccounts: (query) => dispatch(fetchAccountsList({ query })),
requestFetchAccountTypes: () => dispatch(fetchAccountTypes()), // requestFetchAccountTypes: () => dispatch(fetchAccountTypes()),
requestSubmitAccount: ({ form }) => dispatch(submitAccount({ form })), // requestSubmitAccount: ({ form }) => dispatch(submitAccount({ form })),
requestDeleteAccount: (id) => dispatch(deleteAccount({ id })), // requestDeleteAccount: (id) => dispatch(deleteAccount({ id })),
requestInactiveAccount: (id) => dispatch(inactiveAccount({ id })), // requestInactiveAccount: (id) => dispatch(inactiveAccount({ id })),
requestFetchAccount: (id) => dispatch(fetchAccount({ id })), // requestFetchAccount: (id) => dispatch(fetchAccount({ id })),
requestFetchAccountsTable: (query = {}) => dispatch(fetchAccountsTable({ query: { ...query } })), // requestFetchAccountsTable: (query = {}) => dispatch(fetchAccountsTable({ query: { ...query } })),
requestDeleteBulkAccounts: (ids) => dispatch(deleteBulkAccounts({ ids })), // requestDeleteBulkAccounts: (ids) => dispatch(deleteBulkAccounts({ ids })),
changeCurrentView: (id) => dispatch({ // changeCurrentView: (id) => dispatch({
type: t.ACCOUNTS_SET_CURRENT_VIEW, // type: t.ACCOUNTS_SET_CURRENT_VIEW,
currentViewId: parseInt(id, 10), // currentViewId: parseInt(id, 10),
}), // }),
setAccountsTableQuery: (key, value) => dispatch({ // setAccountsTableQuery: (key, value) => dispatch({
type: 'ACCOUNTS_TABLE_QUERY_SET', key, value, // type: 'ACCOUNTS_TABLE_QUERY_SET', key, value,
}), // }),
addAccountsTableQueries: (queries) => dispatch({ // addAccountsTableQueries: (queries) => dispatch({
type: 'ACCOUNTS_TABLE_QUERIES_ADD', queries, // type: 'ACCOUNTS_TABLE_QUERIES_ADD', queries,
}), // }),
setSelectedRowsAccounts: (ids) => dispatch({ // setSelectedRowsAccounts: (ids) => dispatch({
type: t.ACCOUNTS_SELECTED_ROWS_SET, payload: { ids }, // type: t.ACCOUNTS_SELECTED_ROWS_SET, payload: { ids },
}), // }),
}); // });
export default connect(mapStateToProps, mapActionsToProps); // export default connect(mapStateToProps, mapActionsToProps);

View File

@@ -1,27 +1,27 @@
import { connect } from 'react-redux'; // import { connect } from 'react-redux';
import t from 'store/types'; // import t from 'store/types';
const mapActionsToProps = (dispatch) => ({ // const mapActionsToProps = (dispatch) => ({
changePageTitle: (pageTitle) => dispatch({ // changePageTitle: (pageTitle) => dispatch({
type: t.CHANGE_DASHBOARD_PAGE_TITLE, pageTitle // type: t.CHANGE_DASHBOARD_PAGE_TITLE, pageTitle
}), // }),
changePageSubtitle: (pageSubtitle) => dispatch({ // changePageSubtitle: (pageSubtitle) => dispatch({
type: t.ALTER_DASHBOARD_PAGE_SUBTITLE, pageSubtitle, // type: t.ALTER_DASHBOARD_PAGE_SUBTITLE, pageSubtitle,
}), // }),
setTopbarEditView: (id) => dispatch({ // setTopbarEditView: (id) => dispatch({
type: t.SET_TOPBAR_EDIT_VIEW, id, // type: t.SET_TOPBAR_EDIT_VIEW, id,
}), // }),
setDashboardRequestLoading: () => dispatch({ // setDashboardRequestLoading: () => dispatch({
type: t.SET_DASHBOARD_REQUEST_LOADING, // type: t.SET_DASHBOARD_REQUEST_LOADING,
}), // }),
setDashboardRequestCompleted: () => dispatch({ // setDashboardRequestCompleted: () => dispatch({
type: t.SET_DASHBOARD_REQUEST_COMPLETED, // type: t.SET_DASHBOARD_REQUEST_COMPLETED,
}), // }),
}); // });
export default connect(null, mapActionsToProps); // export default connect(null, mapActionsToProps);

View File

@@ -1,13 +1,13 @@
import { connect } from 'react-redux'; // import { connect } from 'react-redux';
import t from 'store/types'; // import t from 'store/types';
export const mapStateToProps = (state, props) => { // export const mapStateToProps = (state, props) => {
return {}; // return {};
}; // };
export const mapDispatchToProps = (dispatch) => ({ // export const mapDispatchToProps = (dispatch) => ({
openDialog: (name, payload) => dispatch({ type: t.OPEN_DIALOG, name, payload }), // openDialog: (name, payload) => dispatch({ type: t.OPEN_DIALOG, name, payload }),
closeDialog: (name, payload) => dispatch({ type: t.CLOSE_DIALOG, name, payload }), // closeDialog: (name, payload) => dispatch({ type: t.CLOSE_DIALOG, name, payload }),
}); // });
export default connect(mapStateToProps, mapDispatchToProps); // export default connect(null, mapDispatchToProps);

View File

@@ -1,20 +1,20 @@
import {connect} from 'react-redux'; // import {connect} from 'react-redux';
import { // import {
fetchGeneralLedger, // fetchGeneralLedger,
} from 'store/financialStatement/financialStatements.actions'; // } from 'store/financialStatement/financialStatements.actions';
import { // import {
getFinancialSheetIndexByQuery, // getFinancialSheetIndexByQuery,
getFinancialSheet, // getFinancialSheet,
} from 'store/financialStatement/financialStatements.selectors'; // } from 'store/financialStatement/financialStatements.selectors';
export const mapStateToProps = (state, props) => ({ // export const mapStateToProps = (state, props) => ({
getGeneralLedgerSheetIndex: (query) => getFinancialSheetIndexByQuery(state.financialStatements.generalLedger.sheets, query), // getGeneralLedgerSheetIndex: (query) => getFinancialSheetIndexByQuery(state.financialStatements.generalLedger.sheets, query),
getGeneralLedgerSheet: (index) => getFinancialSheet(state.financialStatements.generalLedger.sheets, index), // getGeneralLedgerSheet: (index) => getFinancialSheet(state.financialStatements.generalLedger.sheets, index),
generalLedgerSheetLoading: state.financialStatements.generalLedger.loading, // generalLedgerSheetLoading: state.financialStatements.generalLedger.loading,
}); // });
export const mapDispatchToProps = (dispatch) => ({ // export const mapDispatchToProps = (dispatch) => ({
fetchGeneralLedger: (query = {}) => dispatch(fetchGeneralLedger({ query })), // fetchGeneralLedger: (query = {}) => dispatch(fetchGeneralLedger({ query })),
}); // });
export default connect(mapStateToProps, mapDispatchToProps); // export default connect(mapStateToProps, mapDispatchToProps);

View File

@@ -1,24 +1,23 @@
//FIXME: FIX Later Need More Work
import { connect } from 'react-redux'; // import { connect } from 'react-redux';
import { // import {
submitItemCategory, // submitItemCategory,
submitCategory, // submitCategory,
fetchCategory // fetchCategory
} from 'store/itemCategories/itemsCategory.actions'; // } from 'store/itemCategories/itemsCategory.actions';
export const mapStateToProps = (state, props) => { // export const mapStateToProps = (state, props) => {
return { // return {
category: state.category, // category: state.category,
name: 'item-form', // name: 'item-form',
payload: { action: 'new', id: null } // payload: { action: 'new', id: null }
}; // };
}; // };
export const mapDispatchToProps = dispatch => ({ // export const mapDispatchToProps = dispatch => ({
submitItemCategory: form => dispatch(submitItemCategory({ form })), // submitItemCategory: form => dispatch(submitItemCategory({ form })),
submitCategory: form => dispatch(submitCategory({ form })), // submitCategory: form => dispatch(submitCategory({ form })),
fetchCategory: () => dispatch(fetchCategory()) // fetchCategory: () => dispatch(fetchCategory())
}); // });
export default connect(mapStateToProps, mapDispatchToProps); // export default connect(mapStateToProps, mapDispatchToProps);

View File

@@ -1,53 +1,51 @@
// import {connect} from 'react-redux';
// import {
// fetchItems,
// deleteItem,
// submitItem,
// } from 'store/items/items.actions';
// import {
// getResourceViews,
// getViewPages,
// } from 'store/customViews/customViews.selectors'
// import {
// getCurrentPageResults
// } from 'store/selectors';
// import t from 'store/types';
// export const mapStateToProps = (state, props) => {
// const viewPages = getViewPages(state.items.views, state.items.currentViewId);
import {connect} from 'react-redux'; // return {
import { // views: getResourceViews(state, 'items'),
fetchItems, // currentPageItems: getCurrentPageResults(
deleteItem, // state.items.items,
submitItem, // viewPages,
} from 'store/items/items.actions'; // state.items.currentPage,
import { // ),
getResourceViews, // bulkSelected: state.items.bulkActions,
getViewPages, // itemsTableLoading: state.items.loading,
} from 'store/customViews/customViews.selectors' // };
import { // };
getCurrentPageResults
} from 'store/selectors';
import t from 'store/types';
export const mapStateToProps = (state, props) => { // export const mapDispatchToProps = (dispatch) => ({
const viewPages = getViewPages(state.items.views, state.items.currentViewId); // requestFetchItems: (query) => dispatch(fetchItems({ query })),
// requestDeleteItem: (id) => dispatch(deleteItem({ id })),
// requestSubmitItem: (form) => dispatch(submitItem({ form })),
// addBulkActionItem: (id) => dispatch({
// type: t.ITEM_BULK_ACTION_ADD, itemId: id
// }),
// removeBulkActionItem: (id) => dispatch({
// type: t.ITEM_BULK_ACTION_REMOVE, itemId: id,
// }),
return { // setItemsTableQuery: (key, value) => dispatch({
views: getResourceViews(state, 'items'), // type: t.ITEMS_TABLE_QUERY_SET, key, value,
currentPageItems: getCurrentPageResults( // }),
state.items.items, // addItemsTableQueries: (queries) =>
viewPages, // dispatch({
state.items.currentPage, // type: t.ITEMS_TABLE_QUERIES_ADD, queries,
), // }),
bulkSelected: state.items.bulkActions, // });
itemsTableLoading: state.items.loading,
};
};
export const mapDispatchToProps = (dispatch) => ({ // export default connect(mapStateToProps, mapDispatchToProps);
requestFetchItems: (query) => dispatch(fetchItems({ query })),
requestDeleteItem: (id) => dispatch(deleteItem({ id })),
requestSubmitItem: (form) => dispatch(submitItem({ form })),
addBulkActionItem: (id) => dispatch({
type: t.ITEM_BULK_ACTION_ADD, itemId: id
}),
removeBulkActionItem: (id) => dispatch({
type: t.ITEM_BULK_ACTION_REMOVE, itemId: id,
}),
setItemsTableQuery: (key, value) => dispatch({
type: t.ITEMS_TABLE_QUERY_SET, key, value,
}),
addItemsTableQueries: (queries) =>
dispatch({
type: t.ITEMS_TABLE_QUERIES_ADD, queries,
}),
});
export default connect(mapStateToProps, mapDispatchToProps);

View File

@@ -1,32 +1,32 @@
import { connect } from 'react-redux'; // import { connect } from 'react-redux';
import { // import {
fetchItemCategories, // fetchItemCategories,
submitItemCategory, // submitItemCategory,
deleteItemCategory, // deleteItemCategory,
editItemCategory, // editItemCategory,
} from 'store/itemCategories/itemsCategory.actions'; // } from 'store/itemCategories/itemsCategory.actions';
import { getDialogPayload } from 'store/dashboard/dashboard.reducer'; // import { getDialogPayload } from 'store/dashboard/dashboard.reducer';
import { getCategoryId } from 'store/itemCategories/itemsCategory.reducer'; // import { getCategoryId } from 'store/itemCategories/itemsCategory.reducer';
export const mapStateToProps = (state, props) => { // export const mapStateToProps = (state, props) => {
const dialogPayload = getDialogPayload(state, 'item-form'); // const dialogPayload = getDialogPayload(state, 'item-form');
return { // return {
categories: Object.values(state.itemCategories.categories), // categories: Object.values(state.itemCategories.categories),
name: 'item-form', // name: 'item-form',
payload: { action: 'new', id: null }, // payload: { action: 'new', id: null },
editItemCategory: // editItemCategory:
dialogPayload && dialogPayload.action === 'edit' // dialogPayload && dialogPayload.action === 'edit'
? state.itemCategories.categories[dialogPayload.id] // ? state.itemCategories.categories[dialogPayload.id]
: {}, // : {},
getCategoryId: (id) => getCategoryId(state, id), // getCategoryId: (id) => getCategoryId(state, id),
}; // };
}; // };
export const mapDispatchToProps = (dispatch) => ({ // export const mapDispatchToProps = (dispatch) => ({
requestSubmitItemCategory: (form) => dispatch(submitItemCategory({ form })), // requestSubmitItemCategory: (form) => dispatch(submitItemCategory({ form })),
requestFetchItemCategories: () => dispatch(fetchItemCategories()), // requestFetchItemCategories: () => dispatch(fetchItemCategories()),
requestDeleteItemCategory: (id) => dispatch(deleteItemCategory(id)), // requestDeleteItemCategory: (id) => dispatch(deleteItemCategory(id)),
requestEditItemCategory: (id, form) => dispatch(editItemCategory(id, form)), // requestEditItemCategory: (id, form) => dispatch(editItemCategory(id, form)),
}); // });
export default connect(mapStateToProps, mapDispatchToProps); // export default connect(mapStateToProps, mapDispatchToProps);

View File

@@ -1,16 +1,16 @@
import {connect} from 'react-redux'; // import {connect} from 'react-redux';
import { // import {
submitMedia, // submitMedia,
deleteMedia, // deleteMedia,
} from 'store/media/media.actions'; // } from 'store/media/media.actions';
export const mapStateToProps = (state, props) => ({ // export const mapStateToProps = (state, props) => ({
}); // });
export const mapDispatchToProps = (dispatch) => ({ // export const mapDispatchToProps = (dispatch) => ({
requestSubmitMedia: (form, config) => dispatch(submitMedia({ form, config })), // requestSubmitMedia: (form, config) => dispatch(submitMedia({ form, config })),
requestDeleteMedia: (ids) => dispatch(deleteMedia({ ids })), // requestDeleteMedia: (ids) => dispatch(deleteMedia({ ids })),
}); // });
export default connect(mapStateToProps, mapDispatchToProps); // export default connect(mapStateToProps, mapDispatchToProps);

View File

@@ -1,28 +1,28 @@
import {connect} from 'react-redux'; // import {connect} from 'react-redux';
import { // import {
fetchResourceColumns, // fetchResourceColumns,
fetchResourceFields, // fetchResourceFields,
} from 'store/resources/resources.actions'; // } from 'store/resources/resources.actions';
import { // import {
getResourceColumns, // getResourceColumns,
getResourceFields, // getResourceFields,
getResourceColumn, // getResourceColumn,
getResourceField, // getResourceField,
getResourceMetadata, // getResourceMetadata,
} from 'store/resources/resources.reducer'; // } from 'store/resources/resources.reducer';
export const mapStateToProps = (state, props) => ({ // export const mapStateToProps = (state, props) => ({
// getResourceColumns: (resourceSlug) => getResourceColumns(state, resourceSlug), // getResourceColumns: (resourceSlug) => getResourceColumns(state, resourceSlug),
// getResourceFields: (resourceSlug) => getResourceFields(state, resourceSlug), // getResourceFields: (resourceSlug) => getResourceFields(state, resourceSlug),
// getResourceMetadata: (resourceSlug) => getResourceMetadata(state, resourceSlug), // getResourceMetadata: (resourceSlug) => getResourceMetadata(state, resourceSlug),
// getResourceColumn: (columnId) => getResourceColumn(state, columnId), // getResourceColumn: (columnId) => getResourceColumn(state, columnId),
// getResourceField: (fieldId) => getResourceField(state, fieldId), // getResourceField: (fieldId) => getResourceField(state, fieldId),
}); // });
export const mapDispatchToProps = (dispatch) => ({ // export const mapDispatchToProps = (dispatch) => ({
requestFetchResourceFields: (resourceSlug) => dispatch(fetchResourceFields({ resourceSlug })), // requestFetchResourceFields: (resourceSlug) => dispatch(fetchResourceFields({ resourceSlug })),
requestFetchResourceColumns: (resourceSlug) => dispatch(fetchResourceColumns({ resourceSlug })), // requestFetchResourceColumns: (resourceSlug) => dispatch(fetchResourceColumns({ resourceSlug })),
}); // });
export default connect(mapStateToProps, mapDispatchToProps); // export default connect(mapStateToProps, mapDispatchToProps);

View File

@@ -1,14 +1,14 @@
import { connect } from 'react-redux'; // import { connect } from 'react-redux';
import t from 'store/types'; // import t from 'store/types';
export const mapStateToProps = (state, props) => ({ // export const mapStateToProps = (state, props) => ({
resultSearch: state.globalSearch.searches, // resultSearch: state.globalSearch.searches,
globalSearchShow: state.globalSearch.isOpen, // globalSearchShow: state.globalSearch.isOpen,
}); // });
export const mapDispatchToProps = (dispatch) => ({ // export const mapDispatchToProps = (dispatch) => ({
openGlobalSearch: (result) => dispatch({ type: t.OPEN_SEARCH, }), // openGlobalSearch: (result) => dispatch({ type: t.OPEN_SEARCH, }),
closeGlobalSearch: (result) => dispatch({ type: t.CLOSE_SEARCH }), // closeGlobalSearch: (result) => dispatch({ type: t.CLOSE_SEARCH }),
}); // });
export default connect(mapStateToProps, mapDispatchToProps); // export default connect(mapStateToProps, mapDispatchToProps);

View File

@@ -1,19 +1,19 @@
import { connect } from 'react-redux'; // import { connect } from 'react-redux';
import { // import {
FetchOptions, // FetchOptions,
submitOptions, // submitOptions,
} from 'store/settings/settings.actions'; // } from 'store/settings/settings.actions';
export const mapStateToProps = (state, props) => { // export const mapStateToProps = (state, props) => {
return { // return {
organizationSettings: state.settings.data.organization, // organizationSettings: state.settings.data.organization,
}; // };
}; // };
export const mapDispatchToProps = (dispatch) => ({ // export const mapDispatchToProps = (dispatch) => ({
requestSubmitOptions: (form) => dispatch(submitOptions({ form })), // requestSubmitOptions: (form) => dispatch(submitOptions({ form })),
requestFetchOptions: () => dispatch(FetchOptions({})), // requestFetchOptions: () => dispatch(FetchOptions({})),
}); // });
export default connect(mapStateToProps, mapDispatchToProps); // export default connect(mapStateToProps, mapDispatchToProps);

View File

@@ -1,24 +1,24 @@
import {connect} from 'react-redux'; // import {connect} from 'react-redux';
import { // import {
fetchTrialBalanceSheet // fetchTrialBalanceSheet
} from 'store/financialStatement/financialStatements.actions'; // } from 'store/financialStatement/financialStatements.actions';
import { // import {
getFinancialSheetIndexByQuery, // getFinancialSheetIndexByQuery,
getFinancialSheetAccounts, // getFinancialSheetAccounts,
getFinancialSheetQuery, // getFinancialSheetQuery,
} from 'store/financialStatement/financialStatements.selectors'; // } from 'store/financialStatement/financialStatements.selectors';
export const mapStateToProps = (state, props) => ({ // export const mapStateToProps = (state, props) => ({
getTrialBalanceSheetIndex: (query) => getFinancialSheetIndexByQuery(state.financialStatements.trialBalance.sheets, query), // getTrialBalanceSheetIndex: (query) => getFinancialSheetIndexByQuery(state.financialStatements.trialBalance.sheets, query),
getTrialBalanceAccounts: (sheetIndex) => getFinancialSheetAccounts(state.financialStatements.trialBalance.sheets, sheetIndex), // getTrialBalanceAccounts: (sheetIndex) => getFinancialSheetAccounts(state.financialStatements.trialBalance.sheets, sheetIndex),
getTrialBalanceQuery: (sheetIndex) => getFinancialSheetQuery(state.financialStatements.trialBalance.sheets, sheetIndex), // getTrialBalanceQuery: (sheetIndex) => getFinancialSheetQuery(state.financialStatements.trialBalance.sheets, sheetIndex),
trialBalanceSheetLoading: state.financialStatements.trialBalance.loading, // trialBalanceSheetLoading: state.financialStatements.trialBalance.loading,
}); // });
export const mapDispatchToProps = (dispatch) => ({ // export const mapDispatchToProps = (dispatch) => ({
fetchTrialBalanceSheet: (query = {}) => dispatch(fetchTrialBalanceSheet({ query })), // fetchTrialBalanceSheet: (query = {}) => dispatch(fetchTrialBalanceSheet({ query })),
}); // });
export default connect(mapStateToProps, mapDispatchToProps); // export default connect(mapStateToProps, mapDispatchToProps);

View File

@@ -1,30 +0,0 @@
import { connect } from 'react-redux';
import { submitInvite, editUser, fetchUser } from 'store/users/users.actions';
import { getUserDetails } from 'store/users/users.reducer';
import { getDialogPayload } from 'store/dashboard/dashboard.reducer';
import t from 'store/types';
export const mapStateToProps = (state, props) => {
const dialogPayload = getDialogPayload(state, 'user-form');
return {
name: 'user-form',
payload: { action: 'new', id: null },
userDetails:
dialogPayload.action === 'edit'
? getUserDetails(state, dialogPayload.user.id)
: {},
};
};
export const mapDispatchToProps = (dispatch) => ({
openDialog: (name, payload) =>
dispatch({ type: t.OPEN_DIALOG, name, payload }),
closeDialog: (name, payload) =>
dispatch({ type: t.CLOSE_DIALOG, name, payload }),
requestSubmitInvite: (form) => dispatch(submitInvite({ form })),
requestEditUser: (id, form) => dispatch(editUser({ form, id })),
requestFetchUser: (id) => dispatch(fetchUser({ id })),
});
export default connect(mapStateToProps, mapDispatchToProps);

View File

@@ -1,44 +0,0 @@
import { connect } from 'react-redux';
import {
fetchUsers,
fetchUser,
deleteUser,
inactiveUser,
editUser,
} from 'store/users/users.actions';
import t from 'store/types';
import { getUserDetails } from 'store/users/users.reducer';
import { getDialogPayload } from 'store/dashboard/dashboard.reducer';
export const mapStateToProps = (state, props) => {
const dialogPayload = getDialogPayload(state, 'userList-form');
return {
name: 'userList-form',
payload: { action: 'new', id: null },
userDetails:
dialogPayload.action === 'edit'
? getUserDetails(state, dialogPayload.user.id)
: {},
editUser:
dialogPayload && dialogPayload.action === 'edit'
? state.users.list.results[dialogPayload.user.id]
: {},
usersList: state.users.list.results,
};
};
export const mapDispatchToProps = (dispatch) => ({
openDialog: (name, payload) =>
dispatch({ type: t.OPEN_DIALOG, name, payload }),
closeDialog: (name, payload) =>
dispatch({ type: t.CLOSE_DIALOG, name, payload }),
requestFetchUsers: () => dispatch(fetchUsers({})),
requestFetchUser: (id) => dispatch(fetchUser({ id })),
requestDeleteUser: (id) => dispatch(deleteUser({ id })),
requestInactiveUser: (id) => dispatch(inactiveUser({ id })),
requestEditUser: (id, form) => dispatch(editUser({ form, id })),
});
export default connect(mapStateToProps, mapDispatchToProps);

View File

@@ -1,13 +1,13 @@
import {connect} from 'react-redux'; // import {connect} from 'react-redux';
import t from 'store/types'; // import t from 'store/types';
export const mapStateToProps = (state, props) => { // export const mapStateToProps = (state, props) => {
}; // };
export const mapDispatchToProps = (dispatch) => ({ // export const mapDispatchToProps = (dispatch) => ({
openDialog: (name, payload) => dispatch({ type: t.OPEN_DIALOG, name, payload }), // openDialog: (name, payload) => dispatch({ type: t.OPEN_DIALOG, name, payload }),
closeDialog: (name, payload) => dispatch({ type: t.CLOSE_DIALOG, name, payload }), // closeDialog: (name, payload) => dispatch({ type: t.CLOSE_DIALOG, name, payload }),
}); // });
export default connect(mapStateToProps, mapDispatchToProps); // export default connect(mapStateToProps, mapDispatchToProps);

View File

@@ -17,7 +17,7 @@ import withDashboardActions from 'containers/Dashboard/withDashboard';
import AppToaster from 'components/AppToaster'; import AppToaster from 'components/AppToaster';
import Dragzone from 'components/Dragzone'; import Dragzone from 'components/Dragzone';
import MediaConnect from 'connectors/Media.connect'; import withMediaActions from 'containers/Media/withMediaActions';
import useMedia from 'hooks/useMedia'; import useMedia from 'hooks/useMedia';
import {compose} from 'utils'; import {compose} from 'utils';
@@ -271,5 +271,5 @@ export default compose(
withManualJournalDetail, withManualJournalDetail,
withAccountsActions, withAccountsActions,
withDashboardActions, withDashboardActions,
MediaConnect, withMediaActions,
)(MakeJournalEntriesForm); )(MakeJournalEntriesForm);

View File

@@ -19,7 +19,8 @@ import { FormattedMessage as T } from 'react-intl';
import FilterDropdown from 'components/FilterDropdown'; import FilterDropdown from 'components/FilterDropdown';
import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar'; import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar';
import DialogConnect from 'connectors/Dialog.connector'; import withDialog from 'containers/Dialogs/withDialog';
import { If } from 'components'; import { If } from 'components';
import withResourceDetail from 'containers/Resources/withResourceDetails'; import withResourceDetail from 'containers/Resources/withResourceDetails';
@@ -137,7 +138,7 @@ function ManualJournalActionsBar({
} }
export default compose( export default compose(
DialogConnect, withDialog,
withResourceDetail(({ resourceFields }) => ({ withResourceDetail(({ resourceFields }) => ({
resourceFields, resourceFields,
})), })),

View File

@@ -19,7 +19,7 @@ import { compose } from 'utils';
import moment from 'moment'; import moment from 'moment';
import LoadingIndicator from 'components/LoadingIndicator'; import LoadingIndicator from 'components/LoadingIndicator';
import DialogConnect from 'connectors/Dialog.connector'; import withDialog from 'containers/Dialogs/withDialog';
import { useUpdateEffect } from 'hooks'; import { useUpdateEffect } from 'hooks';
import DataTable from 'components/DataTable'; import DataTable from 'components/DataTable';
@@ -251,7 +251,7 @@ function ManualJournalsDataTable({
} }
export default compose( export default compose(
DialogConnect, withDialog,
withDashboardActions, withDashboardActions,
withManualJournalsActions, withManualJournalsActions,
withManualJournals(({ manualJournals, manualJournalsLoading, }) => ({ withManualJournals(({ manualJournals, manualJournalsLoading, }) => ({

View File

@@ -19,7 +19,7 @@ import { FormattedMessage as T } from 'react-intl';
import { If } from 'components'; import { If } from 'components';
import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar'; import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar';
import DialogConnect from 'connectors/Dialog.connector'; import withDialog from 'containers/Dialogs/withDialog';
import FilterDropdown from 'components/FilterDropdown'; import FilterDropdown from 'components/FilterDropdown';
@@ -27,8 +27,7 @@ import withResourceDetail from 'containers/Resources/withResourceDetails';
import withAccountsTableActions from 'containers/Accounts/withAccountsTableActions'; import withAccountsTableActions from 'containers/Accounts/withAccountsTableActions';
import withAccounts from 'containers/Accounts/withAccounts'; import withAccounts from 'containers/Accounts/withAccounts';
import {compose} from 'utils'; import { compose } from 'utils';
function AccountsActionsBar({ function AccountsActionsBar({
openDialog, openDialog,
@@ -45,28 +44,31 @@ function AccountsActionsBar({
onBulkDelete, onBulkDelete,
onBulkArchive, onBulkArchive,
onBulkActivate, onBulkActivate,
onBulkInactive onBulkInactive,
}) { }) {
const history = useHistory(); const history = useHistory();
const [filterCount, setFilterCount] = useState(0); const [filterCount, setFilterCount] = useState(0);
const onClickNewAccount = () => { openDialog('account-form', {}); }; const onClickNewAccount = () => {
openDialog('account-form', {});
};
const onClickViewItem = (view) => { const onClickViewItem = (view) => {
history.push(view history.push(view ? `/accounts/${view.id}/custom_view` : '/accounts');
? `/accounts/${view.id}/custom_view` : '/accounts');
}; };
const viewsMenuItems = accountsViews.map((view) => { const viewsMenuItems = accountsViews.map((view) => {
return (<MenuItem onClick={() => onClickViewItem(view)} text={view.name} />); return <MenuItem onClick={() => onClickViewItem(view)} text={view.name} />;
}); });
const hasSelectedRows = useMemo(() => selectedRows.length > 0, [selectedRows]); const hasSelectedRows = useMemo(() => selectedRows.length > 0, [
selectedRows,
]);
const filterDropdown = FilterDropdown({ const filterDropdown = FilterDropdown({
fields: resourceFields, fields: resourceFields,
onFilterChange: (filterConditions) => { onFilterChange: (filterConditions) => {
setFilterCount(filterConditions.length || 0); setFilterCount(filterConditions.length || 0);
addAccountsTableQueries({ addAccountsTableQueries({
filter_roles: filterConditions || '', filter_roles: filterConditions || '',
}); });
onFilterChanged && onFilterChanged(filterConditions); onFilterChanged && onFilterChanged(filterConditions);
}, },
@@ -77,19 +79,16 @@ function AccountsActionsBar({
// }, [onBulkArchive, selectedRows]); // }, [onBulkArchive, selectedRows]);
const handleBulkDelete = useCallback(() => { const handleBulkDelete = useCallback(() => {
onBulkDelete && onBulkDelete(selectedRows.map(r => r.id)); onBulkDelete && onBulkDelete(selectedRows.map((r) => r.id));
}, [onBulkDelete, selectedRows]); }, [onBulkDelete, selectedRows]);
const handelBulkActivate =useCallback(()=>{ const handelBulkActivate = useCallback(() => {
onBulkActivate && onBulkActivate(selectedRows.map((r) => r.id));
}, [onBulkActivate, selectedRows]);
onBulkActivate && onBulkActivate(selectedRows.map(r=>r.id)) const handelBulkInactive = useCallback(() => {
},[onBulkActivate,selectedRows]) onBulkInactive && onBulkInactive(selectedRows.map((r) => r.id));
}, [onBulkInactive, selectedRows]);
const handelBulkInactive =useCallback(()=>{
onBulkInactive && onBulkInactive(selectedRows.map(r=>r.id))
},[onBulkInactive,selectedRows])
return ( return (
<DashboardActionsBar> <DashboardActionsBar>
@@ -102,8 +101,8 @@ onBulkInactive && onBulkInactive(selectedRows.map(r=>r.id))
> >
<Button <Button
className={classNames(Classes.MINIMAL, 'button--table-views')} className={classNames(Classes.MINIMAL, 'button--table-views')}
icon={<Icon icon='table' />} icon={<Icon icon="table" />}
text={<T id={'table_views'}/>} text={<T id={'table_views'} />}
rightIcon={'caret-down'} rightIcon={'caret-down'}
/> />
</Popover> </Popover>
@@ -112,54 +111,60 @@ onBulkInactive && onBulkInactive(selectedRows.map(r=>r.id))
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon='plus' />} icon={<Icon icon="plus" />}
text={<T id={'new_account'}/>} text={<T id={'new_account'} />}
onClick={onClickNewAccount} onClick={onClickNewAccount}
/> />
<Popover <Popover
minimal={true} minimal={true}
content={filterDropdown} content={filterDropdown}
interactionKind={PopoverInteractionKind.CLICK} interactionKind={PopoverInteractionKind.CLICK}
position={Position.BOTTOM_LEFT}> position={Position.BOTTOM_LEFT}
>
<Button <Button
className={classNames(Classes.MINIMAL, 'button--filter')} className={classNames(Classes.MINIMAL, 'button--filter')}
text={filterCount <= 0 ? <T id={'filter'}/> : `${filterCount} filters applied`} text={
icon={ <Icon icon="filter" /> }/> filterCount <= 0 ? (
<T id={'filter'} />
) : (
`${filterCount} filters applied`
)
}
icon={<Icon icon="filter" />}
/>
</Popover> </Popover>
<If condition={hasSelectedRows}> <If condition={hasSelectedRows}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon='multi-select' iconSize={15} />} icon={<Icon icon="multi-select" iconSize={15} />}
text={<T id={'activate'}/>} text={<T id={'activate'} />}
onClick={handelBulkActivate} onClick={handelBulkActivate}
/> />
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon='archive' iconSize={15} />} icon={<Icon icon="archive" iconSize={15} />}
text={<T id={'inactivate'}/>} text={<T id={'inactivate'} />}
onClick={handelBulkInactive} onClick={handelBulkInactive}
/> />
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon='trash' iconSize={15} />} icon={<Icon icon="trash" iconSize={15} />}
text={<T id={'delete'}/>} text={<T id={'delete'} />}
intent={Intent.DANGER} intent={Intent.DANGER}
onClick={handleBulkDelete} onClick={handleBulkDelete}
/> />
</If> </If>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon='file-import' />} icon={<Icon icon="file-import" />}
text={<T id={'import'}/>} text={<T id={'import'} />}
/> />
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon='file-export' />} icon={<Icon icon="file-export" />}
text={<T id={'export'}/>} text={<T id={'export'} />}
/> />
</NavbarGroup> </NavbarGroup>
</DashboardActionsBar> </DashboardActionsBar>
@@ -174,7 +179,7 @@ const withAccountsActionsBar = connect(mapStateToProps);
export default compose( export default compose(
withAccountsActionsBar, withAccountsActionsBar,
DialogConnect, withDialog,
withAccounts(({ accountsViews }) => ({ withAccounts(({ accountsViews }) => ({
accountsViews, accountsViews,
})), })),

View File

@@ -13,7 +13,8 @@ import { FormattedMessage as T, useIntl } from 'react-intl';
import Icon from 'components/Icon'; import Icon from 'components/Icon';
import { compose } from 'utils'; import { compose } from 'utils';
import DialogConnect from 'connectors/Dialog.connector'; import withDialog from 'containers/Dialogs/withDialog';
import LoadingIndicator from 'components/LoadingIndicator'; import LoadingIndicator from 'components/LoadingIndicator';
import DataTable from 'components/DataTable'; import DataTable from 'components/DataTable';
import Money from 'components/Money'; import Money from 'components/Money';
@@ -201,7 +202,7 @@ function AccountsDataTable({
} }
export default compose( export default compose(
DialogConnect, withDialog,
withDashboardActions, withDashboardActions,
withAccountsActions, withAccountsActions,
withAccounts(({ accountsLoading, accounts }) => ({ withAccounts(({ accountsLoading, accounts }) => ({

View File

@@ -1,8 +1,8 @@
import {connect} from 'react-redux'; import { connect } from 'react-redux';
import { compose } from 'utils'; import { compose } from 'utils';
import DialogConnect from 'connectors/Dialog.connector'; import withDialog from 'containers/Dialogs/withDialog';
import DialogReduxConnect from 'components/DialogReduxConnect'; import DialogReduxConnect from 'components/DialogReduxConnect';
import {getDialogPayload} from 'store/dashboard/dashboard.reducer'; import { getDialogPayload } from 'store/dashboard/dashboard.reducer';
import withAccountsActions from 'containers/Accounts/withAccountsActions'; import withAccountsActions from 'containers/Accounts/withAccountsActions';
import withAccountDetail from 'containers/Accounts/withAccountDetail'; import withAccountDetail from 'containers/Accounts/withAccountDetail';
import withAccounts from 'containers/Accounts/withAccounts'; import withAccounts from 'containers/Accounts/withAccounts';
@@ -12,12 +12,11 @@ export const mapStateToProps = (state, props) => {
return { return {
name: 'account-form', name: 'account-form',
payload: {action: 'new', id: null, ...dialogPayload}, payload: { action: 'new', id: null, ...dialogPayload },
accountId: dialogPayload?.id || null, accountId: dialogPayload?.id || null,
}; };
}; };
const AccountFormDialogConnect = connect(mapStateToProps); const AccountFormDialogConnect = connect(mapStateToProps);
export default compose( export default compose(
@@ -29,5 +28,5 @@ export default compose(
accounts, accounts,
})), })),
DialogReduxConnect, DialogReduxConnect,
DialogConnect, withDialog,
); );

View File

@@ -19,7 +19,7 @@ import Dialog from 'components/Dialog';
import DialogReduxConnect from 'components/DialogReduxConnect'; import DialogReduxConnect from 'components/DialogReduxConnect';
import ErrorMessage from 'components/ErrorMessage'; import ErrorMessage from 'components/ErrorMessage';
import classNames from 'classnames'; import classNames from 'classnames';
import DialogConnect from 'connectors/Dialog.connector'; import withDialog from 'containers/Dialogs/withDialog';
import { getDialogPayload } from 'store/dashboard/dashboard.reducer'; import { getDialogPayload } from 'store/dashboard/dashboard.reducer';
import withCurrency from 'containers/Currencies/withCurrency'; import withCurrency from 'containers/Currencies/withCurrency';
@@ -29,6 +29,7 @@ import { compose } from 'utils';
function CurrencyDialog({ function CurrencyDialog({
name, name,
payload, payload,
@@ -197,7 +198,7 @@ const withCurrencyFormDialog = connect(mapStateToProps);
export default compose( export default compose(
withCurrencyFormDialog, withCurrencyFormDialog,
DialogConnect, withDialog,
DialogReduxConnect, DialogReduxConnect,
withCurrenciesActions, withCurrenciesActions,
withCurrency, withCurrency,

View File

@@ -2,7 +2,7 @@ import { connect } from 'react-redux';
import { compose } from 'utils'; import { compose } from 'utils';
import { getDialogPayload } from 'store/dashboard/dashboard.reducer'; import { getDialogPayload } from 'store/dashboard/dashboard.reducer';
import DialogConnect from 'connectors/Dialog.connector'; import withDialog from 'containers/Dialogs/withDialog';
import DialogReduxConnect from 'components/DialogReduxConnect'; import DialogReduxConnect from 'components/DialogReduxConnect';
import withExchangeRatesActions from 'containers/ExchangeRates/withExchangeRatesActions'; import withExchangeRatesActions from 'containers/ExchangeRates/withExchangeRatesActions';
@@ -31,5 +31,5 @@ export default compose(
exchangeRatesList, exchangeRatesList,
})), })),
DialogReduxConnect, DialogReduxConnect,
DialogConnect, withDialog,
); );

View File

@@ -17,7 +17,9 @@ import { queryCache } from 'react-query';
import AppToaster from 'components/AppToaster'; import AppToaster from 'components/AppToaster';
import DialogReduxConnect from 'components/DialogReduxConnect'; import DialogReduxConnect from 'components/DialogReduxConnect';
import UserListDialogConnect from 'connectors/UsersList.connector'; import UserListDialogConnect from 'containers/Dialogs/UsersListDialog.connector';
import withDialog from 'containers/Dialogs/withDialog';
import withUsersActions from 'containers/Users/withUsersActions';
import ErrorMessage from 'components/ErrorMessage'; import ErrorMessage from 'components/ErrorMessage';
import useAsync from 'hooks/async'; import useAsync from 'hooks/async';
import classNames from 'classnames'; import classNames from 'classnames';
@@ -194,6 +196,8 @@ function InviteUserDialog({
} }
export default compose( export default compose(
withDialog,
UserListDialogConnect, UserListDialogConnect,
withUsersActions,
DialogReduxConnect DialogReduxConnect
)(InviteUserDialog); )(InviteUserDialog);

View File

@@ -22,7 +22,7 @@ import AppToaster from 'components/AppToaster';
import ErrorMessage from 'components/ErrorMessage'; import ErrorMessage from 'components/ErrorMessage';
import Dialog from 'components/Dialog'; import Dialog from 'components/Dialog';
import DialogConnect from 'connectors/Dialog.connector'; import withDialog from 'containers/Dialogs/withDialog';
import DialogReduxConnect from 'components/DialogReduxConnect'; import DialogReduxConnect from 'components/DialogReduxConnect';
import { getDialogPayload } from 'store/dashboard/dashboard.reducer'; import { getDialogPayload } from 'store/dashboard/dashboard.reducer';
@@ -263,7 +263,7 @@ const withItemCategoryDialog = connect(mapStateToProps);
export default compose( export default compose(
withItemCategoryDialog, withItemCategoryDialog,
DialogConnect, withDialog,
DialogReduxConnect, DialogReduxConnect,
withItemCategoryDetail, withItemCategoryDetail,
withItemCategories(({ categoriesList }) => ({ withItemCategories(({ categoriesList }) => ({

View File

@@ -1,138 +1,138 @@
import React, { useState } from 'react'; // import React, { useState } from 'react';
import { // import {
Button, // Button,
Classes, // Classes,
FormGroup, // FormGroup,
InputGroup, // InputGroup,
Intent, // Intent,
TextArea, // TextArea,
} from '@blueprintjs/core'; // } from '@blueprintjs/core';
import * as Yup from 'yup'; // import * as Yup from 'yup';
import { FormattedMessage as T, useIntl } from 'react-intl'; // import { FormattedMessage as T, useIntl } from 'react-intl';
import { useFormik } from 'formik'; // import { useFormik } from 'formik';
import { compose } from 'utils'; // import { compose } from 'utils';
import Dialog from 'components/Dialog'; // import Dialog from 'components/Dialog';
import useAsync from 'hooks/async'; // import useAsync from 'hooks/async';
import AppToaster from 'components/AppToaster'; // import AppToaster from 'components/AppToaster';
import DialogConnect from 'connectors/Dialog.connector'; // import withDialog from 'containers/Dialogs/withDialog';
import DialogReduxConnect from 'components/DialogReduxConnect'; // import DialogReduxConnect from 'components/DialogReduxConnect';
import ItemFormDialogConnect from 'connectors/ItemFormDialog.connect'; // // import ItemFormDialogConnect from 'connectors/ItemFormDialog.connect';
function ItemFromDialog({ // function ItemFromDialog({
name, // name,
payload, // payload,
isOpen, // isOpen,
submitItemCategory, // submitItemCategory,
fetchCategory, // fetchCategory,
openDialog, // openDialog,
closeDialog, // closeDialog,
}) { // }) {
const [state, setState] = useState({}); // const [state, setState] = useState({});
const { formatMessage } = useIntl(); // const { formatMessage } = useIntl();
const ValidationSchema = Yup.object().shape({ // const ValidationSchema = Yup.object().shape({
name: Yup.string().required().label(formatMessage({id:'category_name_'})), // name: Yup.string().required().label(formatMessage({id:'category_name_'})),
description: Yup.string().trim(), // description: Yup.string().trim(),
}); // });
const formik = useFormik({ // const formik = useFormik({
enableReinitialize: true, // enableReinitialize: true,
initialValues: {}, // initialValues: {},
validationSchema: ValidationSchema, // validationSchema: ValidationSchema,
onSubmit: (values) => { // onSubmit: (values) => {
submitItemCategory({ values }) // submitItemCategory({ values })
.then((response) => { // .then((response) => {
AppToaster.show({ // AppToaster.show({
message: formatMessage({id:'the_category_has_been_successfully_created'}), // message: formatMessage({id:'the_category_has_been_successfully_created'}),
}); // });
}) // })
.catch((error) => { // .catch((error) => {
alert(error.message); // alert(error.message);
}); // });
}, // },
}); // });
const fetchHook = useAsync(async () => { // const fetchHook = useAsync(async () => {
await Promise.all([submitItemCategory]); // await Promise.all([submitItemCategory]);
}); // });
const handleClose = () => { // const handleClose = () => {
closeDialog(name); // closeDialog(name);
}; // };
const onDialogOpening = () => { // const onDialogOpening = () => {
fetchHook.execute(); // fetchHook.execute();
openDialog(name); // openDialog(name);
}; // };
const onDialogClosed = () => { // const onDialogClosed = () => {
// formik.resetForm(); // // formik.resetForm();
closeDialog(name); // closeDialog(name);
}; // };
return ( // return (
<Dialog // <Dialog
name={name} // name={name}
title={ // title={
payload.action === 'new' ? <T id={'new'} /> : <T id={'new_category'} /> // payload.action === 'new' ? <T id={'new'} /> : <T id={'new_category'} />
} // }
className={{ // className={{
'dialog--loading': state.isLoading, // 'dialog--loading': state.isLoading,
'dialog--item-form': true, // 'dialog--item-form': true,
}} // }}
isOpen={isOpen} // isOpen={isOpen}
onClosed={onDialogClosed} // onClosed={onDialogClosed}
onOpening={onDialogOpening} // onOpening={onDialogOpening}
isLoading={fetchHook.pending} // isLoading={fetchHook.pending}
> // >
<form onSubmit={formik.handleSubmit}> // <form onSubmit={formik.handleSubmit}>
<div className={Classes.DIALOG_BODY}> // <div className={Classes.DIALOG_BODY}>
<FormGroup // <FormGroup
label={<T id={'category_name'} />} // label={<T id={'category_name'} />}
className={'form-group--category-name'} // className={'form-group--category-name'}
intent={formik.errors.name && Intent.DANGER} // intent={formik.errors.name && Intent.DANGER}
helperText={formik.errors.name && formik.errors.name} // helperText={formik.errors.name && formik.errors.name}
inline={true} // inline={true}
> // >
<InputGroup // <InputGroup
medium={formik.values.toString()} // medium={formik.values.toString()}
intent={formik.errors.name && Intent.DANGER} // intent={formik.errors.name && Intent.DANGER}
{...formik.getFieldProps('name')} // {...formik.getFieldProps('name')}
/> // />
</FormGroup> // </FormGroup>
<FormGroup // <FormGroup
label={<T id={'description'} />} // label={<T id={'description'} />}
className={'form-group--description'} // className={'form-group--description'}
intent={formik.errors.description && Intent.DANGER} // intent={formik.errors.description && Intent.DANGER}
helperText={formik.errors.description && formik.errors.credential} // helperText={formik.errors.description && formik.errors.credential}
inline={true} // inline={true}
> // >
<TextArea // <TextArea
growVertically={true} // growVertically={true}
large={true} // large={true}
{...formik.getFieldProps('description')} // {...formik.getFieldProps('description')}
/> // />
</FormGroup> // </FormGroup>
</div> // </div>
<div className={Classes.DIALOG_FOOTER}> // <div className={Classes.DIALOG_FOOTER}>
<div className={Classes.DIALOG_FOOTER_ACTIONS}> // <div className={Classes.DIALOG_FOOTER_ACTIONS}>
<Button onClick={handleClose}> // <Button onClick={handleClose}>
<T id={'close'} /> // <T id={'close'} />
</Button> // </Button>
<Button intent={Intent.PRIMARY} type='submit'> // <Button intent={Intent.PRIMARY} type='submit'>
{payload.action === 'new' ? ( // {payload.action === 'new' ? (
<T id={'new'} /> // <T id={'new'} />
) : ( // ) : (
<T id={'submit'} /> // <T id={'submit'} />
)} // )}
</Button> // </Button>
</div> // </div>
</div> // </div>
</form> // </form>
</Dialog> // </Dialog>
); // );
} // }
export default compose( // export default compose(
ItemFormDialogConnect, // // ItemFormDialogConnect,
DialogConnect, // withDialog,
DialogReduxConnect // DialogReduxConnect
)(ItemFromDialog); // )(ItemFromDialog);

View File

@@ -0,0 +1,19 @@
import { connect } from 'react-redux';
import { getUserDetails } from 'store/users/users.reducer';
import { getDialogPayload } from 'store/dashboard/dashboard.reducer';
import t from 'store/types';
export const mapStateToProps = (state, props) => {
const dialogPayload = getDialogPayload(state, 'user-form');
return {
name: 'user-form',
payload: { action: 'new', id: null },
userDetails:
dialogPayload.action === 'edit'
? getUserDetails(state, dialogPayload.user.id)
: {},
};
};
export default connect(mapStateToProps, null);

View File

@@ -18,7 +18,10 @@ import AppToaster from 'components/AppToaster';
import DialogReduxConnect from 'components/DialogReduxConnect'; import DialogReduxConnect from 'components/DialogReduxConnect';
import ErrorMessage from 'components/ErrorMessage'; import ErrorMessage from 'components/ErrorMessage';
import useAsync from 'hooks/async'; import useAsync from 'hooks/async';
import UserFormDialogConnect from 'connectors/UserFormDialog.connector'; import UserFormDialogConnect from 'containers/Dialogs/UserFormDialog.connector';
import withUsersActions from 'containers/Users/withUsersActions';
import withDialog from 'containers/Dialogs/withDialog';
import { compose } from 'utils'; import { compose } from 'utils';
function UserFormDialog({ function UserFormDialog({
@@ -158,5 +161,7 @@ function UserFormDialog({
export default compose( export default compose(
UserFormDialogConnect, UserFormDialogConnect,
withUsersActions,
withDialog,
DialogReduxConnect, DialogReduxConnect,
)(UserFormDialog); )(UserFormDialog);

View File

@@ -0,0 +1,22 @@
import { connect } from 'react-redux';
import { getUserDetails } from 'store/users/users.reducer';
import { getDialogPayload } from 'store/dashboard/dashboard.reducer';
export const mapStateToProps = (state, props) => {
const dialogPayload = getDialogPayload(state, 'userList-form');
return {
name: 'userList-form',
payload: { action: 'new', id: null },
userDetails:
dialogPayload.action === 'edit'
? getUserDetails(state, dialogPayload.user.id)
: {},
editUser:
dialogPayload && dialogPayload.action === 'edit'
? state.users.list.results[dialogPayload.user.id]
: {},
};
};
export default connect(mapStateToProps, null);

View File

@@ -0,0 +1,13 @@
import { connect } from 'react-redux';
import t from 'store/types';
export const mapStateToProps = (state, props) => {
return {};
};
export const mapDispatchToProps = (dispatch) => ({
openDialog: (name, payload) => dispatch({ type: t.OPEN_DIALOG, name, payload }),
closeDialog: (name, payload) => dispatch({ type: t.CLOSE_DIALOG, name, payload }),
});
export default connect(null, mapDispatchToProps);

View File

@@ -13,7 +13,7 @@ import Icon from 'components/Icon';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar'; import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar';
import withDialog from 'connectors/Dialog.connector'; import withDialog from 'containers/Dialogs/withDialog';
import FilterDropdown from 'components/FilterDropdown'; import FilterDropdown from 'components/FilterDropdown';
import withResourceDetail from 'containers/Resources/withResourceDetails'; import withResourceDetail from 'containers/Resources/withResourceDetails';

View File

@@ -1,6 +1,6 @@
import React, { useCallback, useMemo,useState } from 'react'; import React, { useCallback, useMemo,useState } from 'react';
import Icon from 'components/Icon'; import Icon from 'components/Icon';
import DialogConnect from 'connectors/Dialog.connector'; import withDialog from 'containers/Dialogs/withDialog';
import DataTable from 'components/DataTable'; import DataTable from 'components/DataTable';
import { Button, Popover, Menu, MenuItem, Position } from '@blueprintjs/core'; import { Button, Popover, Menu, MenuItem, Position } from '@blueprintjs/core';
import { FormattedMessage as T, useIntl } from 'react-intl'; import { FormattedMessage as T, useIntl } from 'react-intl';
@@ -126,7 +126,7 @@ function ExchangeRateTable({
} }
export default compose( export default compose(
DialogConnect, withDialog,
withExchangeRatesActions, withExchangeRatesActions,
withExchangeRates(({ exchangeRatesList ,exchangeRatesLoading }) => ({ withExchangeRates(({ exchangeRatesList ,exchangeRatesLoading }) => ({
exchangeRatesList, exchangeRatesList,

View File

@@ -6,7 +6,7 @@ import Money from 'components/Money';
import FinancialSheet from 'components/FinancialSheet'; import FinancialSheet from 'components/FinancialSheet';
import DataTable from 'components/DataTable'; import DataTable from 'components/DataTable';
import SettingsConnect from 'connectors/Settings.connect'; import withSettings from 'containers/Settings/withSettings';
import withBalanceSheetDetail from './withBalanceSheetDetail'; import withBalanceSheetDetail from './withBalanceSheetDetail';
import { getFinancialSheetIndexByQuery } from 'store/financialStatement/financialStatements.selectors'; import { getFinancialSheetIndexByQuery } from 'store/financialStatement/financialStatements.selectors';
@@ -129,5 +129,5 @@ export default compose(
balanceSheetQuery, balanceSheetQuery,
}), }),
), ),
SettingsConnect, withSettings,
)(BalanceSheetTable); )(BalanceSheetTable);

View File

@@ -12,7 +12,8 @@ import { FormattedMessage as T } from 'react-intl';
import AccountsMultiSelect from 'components/AccountsMultiSelect'; import AccountsMultiSelect from 'components/AccountsMultiSelect';
import FinancialStatementHeader from 'containers/FinancialStatements/FinancialStatementHeader'; import FinancialStatementHeader from 'containers/FinancialStatements/FinancialStatementHeader';
import AccountsConnect from 'connectors/Accounts.connector' import withAccounts from 'containers/Accounts/withAccounts';
import classNames from 'classnames'; import classNames from 'classnames';
import FinancialStatementDateRange from 'containers/FinancialStatements/FinancialStatementDateRange'; import FinancialStatementDateRange from 'containers/FinancialStatements/FinancialStatementDateRange';
import RadiosAccountingBasis from '../RadiosAccountingBasis'; import RadiosAccountingBasis from '../RadiosAccountingBasis';
@@ -97,6 +98,6 @@ function GeneralLedgerHeader({
} }
export default compose( export default compose(
AccountsConnect, withAccounts,
withGeneralLedger(({ generalLedgerSheetFilter }) => ({ generalLedgerSheetFilter })), withGeneralLedger(({ generalLedgerSheetFilter }) => ({ generalLedgerSheetFilter })),
)(GeneralLedgerHeader); )(GeneralLedgerHeader);

View File

@@ -10,7 +10,8 @@ import JournalHeader from './JournalHeader';
import JournalActionsBar from './JournalActionsBar'; import JournalActionsBar from './JournalActionsBar';
import DashboardPageContent from 'components/Dashboard/DashboardPageContent'; import DashboardPageContent from 'components/Dashboard/DashboardPageContent';
import DashboardInsider from 'components/Dashboard/DashboardInsider'; import DashboardInsider from 'components/Dashboard/DashboardInsider';
import SettingsConnect from 'connectors/Settings.connect'; import withSettings from 'containers/Settings/withSettings';
import withDashboard from 'containers/Dashboard/withDashboard'; import withDashboard from 'containers/Dashboard/withDashboard';
import withJournalActions from './withJournalActions'; import withJournalActions from './withJournalActions';
@@ -95,5 +96,5 @@ function Journal({
export default compose( export default compose(
withDashboard, withDashboard,
withJournalActions, withJournalActions,
SettingsConnect, withSettings,
)(Journal); )(Journal);

View File

@@ -13,7 +13,10 @@ import DashboardPageContent from 'components/Dashboard/DashboardPageContent'
import withDashboard from 'containers/Dashboard/withDashboard'; import withDashboard from 'containers/Dashboard/withDashboard';
import withProfitLossActions from './withProfitLossActions'; import withProfitLossActions from './withProfitLossActions';
import withProfitLoss from './withProfitLoss'; import withProfitLoss from './withProfitLoss';
import SettingsConnect from 'connectors/Settings.connect'; // import SettingsConnect from 'connectors/Settings.connect';
import withSettings from 'containers/Settings/withSettings';
function ProfitLossSheet({ function ProfitLossSheet({
@@ -90,5 +93,5 @@ export default compose(
withProfitLoss(({ profitLossSheetLoading }) => ({ withProfitLoss(({ profitLossSheetLoading }) => ({
profitLossSheetLoading, profitLossSheetLoading,
})), })),
SettingsConnect, withSettings,
)(ProfitLossSheet); )(ProfitLossSheet);

View File

@@ -2,7 +2,7 @@ import React from 'react';
import { Omnibar } from '@blueprintjs/select'; import { Omnibar } from '@blueprintjs/select';
import { MenuItem } from '@blueprintjs/core'; import { MenuItem } from '@blueprintjs/core';
import { compose } from 'utils'; import { compose } from 'utils';
import SearchConnect from 'connectors/Search.connect'; import withSearch from 'containers/GeneralSearch/withSearch';
function Search({ function Search({
resultSearch, resultSearch,
@@ -30,7 +30,7 @@ function Search({
<Omnibar <Omnibar
className={'navbar-omnibar'} className={'navbar-omnibar'}
isOpen={globalSearchShow} isOpen={globalSearchShow}
noResults={<MenuItem disabled={true} text='No results.' />} noResults={<MenuItem disabled={true} text="No results." />}
onClose={() => closeGlobalSearch(false)} onClose={() => closeGlobalSearch(false)}
resetOnSelect={true} resetOnSelect={true}
itemRenderer={renderSearch} itemRenderer={renderSearch}
@@ -41,4 +41,4 @@ function Search({
); );
} }
export default compose(SearchConnect)(Search); export default compose(withSearch)(Search);

View File

@@ -0,0 +1,15 @@
import { connect } from 'react-redux';
import t from 'store/types';
export const mapStateToProps = (state, props) => ({
resultSearch: state.globalSearch.searches,
globalSearchShow: state.globalSearch.isOpen,
});
export const mapDispatchToProps = (dispatch) => ({
openGlobalSearch: (result) => dispatch({ type: t.OPEN_SEARCH, }),
closeGlobalSearch: (result) => dispatch({ type: t.CLOSE_SEARCH }),
});
export default connect(mapStateToProps, mapDispatchToProps);

View File

@@ -1,4 +1,4 @@
import React, { useEffect, useState, useCallback,useMemo } from 'react'; import React, { useEffect, useState, useCallback, useMemo } from 'react';
import { useParams } from 'react-router-dom'; import { useParams } from 'react-router-dom';
import { useQuery } from 'react-query'; import { useQuery } from 'react-query';
import { Alert, Intent } from '@blueprintjs/core'; import { Alert, Intent } from '@blueprintjs/core';
@@ -13,10 +13,9 @@ import DashboardInsider from 'components/Dashboard/DashboardInsider';
import ItemCategoriesDataTable from 'containers/Items/ItemCategoriesTable'; import ItemCategoriesDataTable from 'containers/Items/ItemCategoriesTable';
import ItemsCategoryActionsBar from 'containers/Items/ItemsCategoryActionsBar'; import ItemsCategoryActionsBar from 'containers/Items/ItemsCategoryActionsBar';
import withDialog from 'connectors/Dialog.connector'; import withDialog from 'containers/Dialogs/withDialog';
import withDashboardActions from 'containers/Dashboard/withDashboard'; import withDashboardActions from 'containers/Dashboard/withDashboard';
import withItemCategoriesActions from 'containers/Items/withItemCategoriesActions'; import withItemCategoriesActions from 'containers/Items/withItemCategoriesActions';
import { compose } from 'utils'; import { compose } from 'utils';
const ItemCategoryList = ({ const ItemCategoryList = ({
@@ -45,11 +44,11 @@ const ItemCategoryList = ({
id id
? changePageTitle(formatMessage({ id: 'edit_category_details' })) ? changePageTitle(formatMessage({ id: 'edit_category_details' }))
: changePageTitle(formatMessage({ id: 'category_list' })); : changePageTitle(formatMessage({ id: 'category_list' }));
}, [id,changePageTitle,formatMessage]); }, [id, changePageTitle, formatMessage]);
const fetchCategories = useQuery( const fetchCategories = useQuery(
['items-categories-table', filter], ['items-categories-table', filter],
(key, query) => requestFetchItemCategories(query) (key, query) => requestFetchItemCategories(query),
); );
const handleFilterChanged = useCallback(() => {}, []); const handleFilterChanged = useCallback(() => {}, []);
@@ -59,7 +58,7 @@ const ItemCategoryList = ({
(itemCategories) => { (itemCategories) => {
setSelectedRows(itemCategories); setSelectedRows(itemCategories);
}, },
[setSelectedRows] [setSelectedRows],
); );
// Handle fetch data of accounts datatable. // Handle fetch data of accounts datatable.
@@ -107,7 +106,7 @@ const ItemCategoryList = ({
(itemsCategoriesIds) => { (itemsCategoriesIds) => {
setBulkDelete(itemsCategoriesIds); setBulkDelete(itemsCategoriesIds);
}, },
[setBulkDelete] [setBulkDelete],
); );
// handle confirm itemCategories bulk delete. // handle confirm itemCategories bulk delete.
@@ -125,22 +124,20 @@ const ItemCategoryList = ({
.catch((errors) => { .catch((errors) => {
setBulkDelete(false); setBulkDelete(false);
}); });
}, [requestDeleteBulkItemCategories, bulkDelete,formatMessage]); }, [requestDeleteBulkItemCategories, bulkDelete, formatMessage]);
//Handel cancel itemCategories bulk delete. //Handel cancel itemCategories bulk delete.
const handleCancelBulkDelete =useCallback(()=>{ const handleCancelBulkDelete = useCallback(() => {
setBulkDelete(false) setBulkDelete(false);
},[]) }, []);
// Calculates the data table selected rows count.
const selectedRowsCount = useMemo(() => Object.values(selectedRows).length, [selectedRows]);
// Calculates the data table selected rows count.
const selectedRowsCount = useMemo(() => Object.values(selectedRows).length, [
selectedRows,
]);
return ( return (
<DashboardInsider name={'item-category-list'}> <DashboardInsider name={'item-category-list'}>
<ItemsCategoryActionsBar <ItemsCategoryActionsBar
selectedRows={selectedRows} selectedRows={selectedRows}
onFilterChanged={handleFilterChanged} onFilterChanged={handleFilterChanged}
@@ -153,13 +150,12 @@ const ItemCategoryList = ({
onSelectedRowsChange={handleSelectedRowsChange} onSelectedRowsChange={handleSelectedRowsChange}
onDeleteCategory={handleDeleteCategory} onDeleteCategory={handleDeleteCategory}
loading={tableLoading} loading={tableLoading}
/> />
<Alert <Alert
cancelButtonText={<T id={'cancel'} />} cancelButtonText={<T id={'cancel'} />}
confirmButtonText={<T id={'delete'} />} confirmButtonText={<T id={'delete'} />}
icon='trash' icon="trash"
intent={Intent.DANGER} intent={Intent.DANGER}
isOpen={deleteCategory} isOpen={deleteCategory}
onCancel={handleCancelItemDelete} onCancel={handleCancelItemDelete}
@@ -174,8 +170,10 @@ const ItemCategoryList = ({
<Alert <Alert
cancelButtonText={<T id={'cancel'} />} cancelButtonText={<T id={'cancel'} />}
confirmButtonText={`${formatMessage({id:'delete'})} (${selectedRowsCount})`} confirmButtonText={`${formatMessage({
icon='trash' id: 'delete',
})} (${selectedRowsCount})`}
icon="trash"
intent={Intent.DANGER} intent={Intent.DANGER}
isOpen={bulkDelete} isOpen={bulkDelete}
onCancel={handleCancelBulkDelete} onCancel={handleCancelBulkDelete}
@@ -183,11 +181,12 @@ const ItemCategoryList = ({
> >
<p> <p>
<FormattedHTMLMessage <FormattedHTMLMessage
id={'once_delete_these_item_categories_you_will_not_able_restore_them'} id={
'once_delete_these_item_categories_you_will_not_able_restore_them'
}
/> />
</p> </p>
</Alert> </Alert>
</DashboardInsider> </DashboardInsider>
); );
}; };

View File

@@ -17,7 +17,7 @@ import { compose } from 'utils';
import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar'; import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar';
import Icon from 'components/Icon'; import Icon from 'components/Icon';
import FilterDropdown from 'components/FilterDropdown'; import FilterDropdown from 'components/FilterDropdown';
import withDialog from 'connectors/Dialog.connector'; import withDialog from 'containers/Dialogs/withDialog';
import withResourceDetail from 'containers/Resources/withResourceDetails'; import withResourceDetail from 'containers/Resources/withResourceDetails';
import withItems from 'containers/Items/withItems'; import withItems from 'containers/Items/withItems';
import { If } from 'components'; import { If } from 'components';
@@ -62,7 +62,7 @@ const ItemsActionsBar = ({
}); });
const onClickNewCategory = useCallback(() => { const onClickNewCategory = useCallback(() => {
openDialog('item-form', {}); openDialog('item-category-form', {});
}, [openDialog]); }, [openDialog]);
const handleBulkDelete = useCallback(() => { const handleBulkDelete = useCallback(() => {

View File

@@ -1,4 +1,4 @@
import React, { useCallback, useMemo,useState } from 'react'; import React, { useCallback, useMemo, useState } from 'react';
import { import {
NavbarGroup, NavbarGroup,
Button, Button,
@@ -18,7 +18,7 @@ import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar';
import FilterDropdown from 'components/FilterDropdown'; import FilterDropdown from 'components/FilterDropdown';
import withResourceDetail from 'containers/Resources/withResourceDetails'; import withResourceDetail from 'containers/Resources/withResourceDetails';
import withDialog from 'connectors/Dialog.connector'; import withDialog from 'containers/Dialogs/withDialog';
import withDashboard from 'containers/Dashboard/withDashboard'; import withDashboard from 'containers/Dashboard/withDashboard';
import { compose } from 'utils'; import { compose } from 'utils';
@@ -26,29 +26,29 @@ import { compose } from 'utils';
const ItemsCategoryActionsBar = ({ const ItemsCategoryActionsBar = ({
// #withResourceDetail // #withResourceDetail
resourceFields, resourceFields,
// #withDialog // #withDialog
openDialog, openDialog,
// #ownProps // #ownProps
selectedRows=[], selectedRows = [],
onFilterChanged, onFilterChanged,
onBulkDelete onBulkDelete,
}) => { }) => {
const [filterCount, setFilterCount] = useState(0); const [filterCount, setFilterCount] = useState(0);
const onClickNewCategory = useCallback(() => { const onClickNewCategory = useCallback(() => {
openDialog('item-category-form', {}); openDialog('item-category-form', {});
}, [openDialog]); }, [openDialog]);
const hasSelectedRows = useMemo(() => selectedRows.length > 0, [selectedRows]); const hasSelectedRows = useMemo(() => selectedRows.length > 0, [
selectedRows,
]);
// const handleDeleteCategory = useCallback((category) => { // const handleDeleteCategory = useCallback((category) => {
// onDeleteCategory(selectedRows); // onDeleteCategory(selectedRows);
// }, [selectedRows, onDeleteCategory]); // }, [selectedRows, onDeleteCategory]);
const filterDropdown = FilterDropdown({ const filterDropdown = FilterDropdown({
fields: resourceFields, fields: resourceFields,
onFilterChange: (filterConditions) => { onFilterChange: (filterConditions) => {
@@ -57,17 +57,17 @@ const ItemsCategoryActionsBar = ({
}, },
}); });
const handelBulkDelete =useCallback(()=>{ const handelBulkDelete = useCallback(() => {
onBulkDelete && onBulkDelete(selectedRows.map(r=>r.id)); onBulkDelete && onBulkDelete(selectedRows.map((r) => r.id));
},[onBulkDelete,selectedRows]) }, [onBulkDelete, selectedRows]);
return ( return (
<DashboardActionsBar> <DashboardActionsBar>
<NavbarGroup> <NavbarGroup>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon='plus' />} icon={<Icon icon="plus" />}
text={<T id={'new_category'}/>} text={<T id={'new_category'} />}
onClick={onClickNewCategory} onClick={onClickNewCategory}
/> />
<Popover <Popover
@@ -78,16 +78,22 @@ const ItemsCategoryActionsBar = ({
> >
<Button <Button
className={classNames(Classes.MINIMAL, 'button--filter')} className={classNames(Classes.MINIMAL, 'button--filter')}
text={ filterCount <= 0 ? <T id={'filter'}/> : `${filterCount} filters applied`} text={
icon={<Icon icon='filter' />} filterCount <= 0 ? (
<T id={'filter'} />
) : (
`${filterCount} filters applied`
)
}
icon={<Icon icon="filter" />}
/> />
</Popover> </Popover>
<If condition={hasSelectedRows}> <If condition={hasSelectedRows}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon='trash' iconSize={15} />} icon={<Icon icon="trash" iconSize={15} />}
text={<T id={'delete'}/>} text={<T id={'delete'} />}
intent={Intent.DANGER} intent={Intent.DANGER}
onClick={handelBulkDelete} onClick={handelBulkDelete}
/> />
@@ -95,13 +101,13 @@ const ItemsCategoryActionsBar = ({
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon='file-import' />} icon={<Icon icon="file-import" />}
text={<T id={'import'}/>} text={<T id={'import'} />}
/> />
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon='file-export' />} icon={<Icon icon="file-export" />}
text={<T id={'export'}/>} text={<T id={'export'} />}
/> />
</NavbarGroup> </NavbarGroup>
</DashboardActionsBar> </DashboardActionsBar>
@@ -120,5 +126,5 @@ export default compose(
withDashboard, withDashboard,
withResourceDetail(({ resourceFields }) => ({ withResourceDetail(({ resourceFields }) => ({
resourceFields, resourceFields,
})) })),
)(ItemsCategoryActionsBar); )(ItemsCategoryActionsBar);

View File

@@ -1,8 +1,8 @@
import React from 'react'; import React from 'react';
import { Button, Intent } from '@blueprintjs/core'; import { Button, Intent } from '@blueprintjs/core';
import { compose } from 'utils'; import { compose } from 'utils';
import DialogConnect from 'connectors/Dialog.connector'; import withDialog from 'containers/Dialogs/withDialog';
import CurrencyFromDialogConnect from 'connectors/CurrencyFromDialog.connect';
function Currencies({ openDialog }) { function Currencies({ openDialog }) {
const onClickNewCurrency = () => { const onClickNewCurrency = () => {
openDialog('currency-form',{}); openDialog('currency-form',{});
@@ -17,4 +17,4 @@ function Currencies({ openDialog }) {
); );
} }
export default compose(DialogConnect, CurrencyFromDialogConnect)(Currencies); export default compose(withDialog)(Currencies);

View File

@@ -4,7 +4,7 @@ import {
Intent, Intent,
} from '@blueprintjs/core'; } from '@blueprintjs/core';
import Icon from 'components/Icon'; import Icon from 'components/Icon';
import DialogConnect from 'connectors/Dialog.connector'; import withDialog from 'containers/Dialogs/withDialog';
import {compose} from 'utils'; import {compose} from 'utils';
function CurrenciesActions({ function CurrenciesActions({
@@ -27,5 +27,5 @@ function CurrenciesActions({
} }
export default compose( export default compose(
DialogConnect, withDialog,
)(CurrenciesActions); )(CurrenciesActions);

View File

@@ -12,13 +12,13 @@ import { useQuery } from 'react-query';
import Icon from 'components/Icon'; import Icon from 'components/Icon';
import { compose } from 'utils'; import { compose } from 'utils';
import DialogConnect from 'connectors/Dialog.connector'; import withDialog from 'containers/Dialogs/withDialog';
import LoadingIndicator from 'components/LoadingIndicator'; import LoadingIndicator from 'components/LoadingIndicator';
import DataTable from 'components/DataTable'; import DataTable from 'components/DataTable';
import AppToaster from 'components/AppToaster'; import AppToaster from 'components/AppToaster';
import withDashboard from 'connectors/Dashboard.connector'; import withDashboard from 'containers/Dashboard/withDashboard';
import withCurrencies from 'containers/Currencies/withCurrencies'; import withCurrencies from 'containers/Currencies/withCurrencies';
import withCurrenciesActions from 'containers/Currencies/withCurrenciesActions'; import withCurrenciesActions from 'containers/Currencies/withCurrenciesActions';
import { FormattedMessage as T, useIntl } from 'react-intl'; import { FormattedMessage as T, useIntl } from 'react-intl';
@@ -156,6 +156,6 @@ export default compose(
currenciesList, currenciesList,
})), })),
withCurrenciesActions, withCurrenciesActions,
DialogConnect, withDialog,
withDashboard withDashboard
)(CurrenciesList); )(CurrenciesList);

View File

@@ -1,7 +1,7 @@
import React from 'react'; import React from 'react';
import { Tabs, Tab } from '@blueprintjs/core'; import { Tabs, Tab } from '@blueprintjs/core';
import PreferencesSubContent from 'components/Preferences/PreferencesSubContent'; import PreferencesSubContent from 'components/Preferences/PreferencesSubContent';
import connector from 'connectors/UsersPreferences.connector'; import withUserPreferences from 'containers/Preferences/Users/withUserPreferences'
function UsersPreferences({ openDialog }) { function UsersPreferences({ openDialog }) {
const onChangeTabs = (currentTabId) => {}; const onChangeTabs = (currentTabId) => {};
@@ -19,4 +19,4 @@ function UsersPreferences({ openDialog }) {
); );
} }
export default connector(UsersPreferences); export default withUserPreferences(UsersPreferences);

View File

@@ -4,7 +4,7 @@ import {
Intent, Intent,
} from '@blueprintjs/core'; } from '@blueprintjs/core';
import Icon from 'components/Icon'; import Icon from 'components/Icon';
import DialogConnect from 'connectors/Dialog.connector'; import withDialog from 'containers/Dialogs/withDialog';
import {compose} from 'utils'; import {compose} from 'utils';
function UsersActions({ function UsersActions({
@@ -34,5 +34,5 @@ function UsersActions({
} }
export default compose( export default compose(
DialogConnect, withDialog,
)(UsersActions); )(UsersActions);

View File

@@ -24,11 +24,12 @@ import LoadingIndicator from 'components/LoadingIndicator';
import AppToaster from 'components/AppToaster'; import AppToaster from 'components/AppToaster';
import DialogConnect from 'connectors/Dialog.connector'; import withDialog from 'containers/Dialogs/withDialog';
import withDashboard from 'containers/Dashboard/withDashboard'; import withDashboard from 'containers/Dashboard/withDashboard';
import withUsers from 'containers/Users/withUsers'; import withUsers from 'containers/Users/withUsers';
import withUsersActions from 'containers/Users/withUsersActions'; import withUsersActions from 'containers/Users/withUsersActions';
import { compose } from 'utils'; import { compose } from 'utils';
function UsersListPreferences({ function UsersListPreferences({
@@ -239,7 +240,7 @@ function UsersListPreferences({
} }
export default compose( export default compose(
DialogConnect, withDialog,
withDashboard, withDashboard,
withUsers, withUsers,
withUsersActions, withUsersActions,

View File

@@ -0,0 +1,13 @@
import {connect} from 'react-redux';
import t from 'store/types';
export const mapStateToProps = (state, props) => {
};
export const mapDispatchToProps = (dispatch) => ({
openDialog: (name, payload) => dispatch({ type: t.OPEN_DIALOG, name, payload }),
closeDialog: (name, payload) => dispatch({ type: t.CLOSE_DIALOG, name, payload }),
});
export default connect(null, mapDispatchToProps);

View File

@@ -5,6 +5,7 @@ import {
deleteUser, deleteUser,
inactiveUser, inactiveUser,
editUser, editUser,
submitInvite
} from 'store/users/users.actions'; } from 'store/users/users.actions';
export const mapDispatchToProps = (dispatch) => ({ export const mapDispatchToProps = (dispatch) => ({
@@ -13,6 +14,8 @@ export const mapDispatchToProps = (dispatch) => ({
requestDeleteUser: (id) => dispatch(deleteUser({ id })), requestDeleteUser: (id) => dispatch(deleteUser({ id })),
requestInactiveUser: (id) => dispatch(inactiveUser({ id })), requestInactiveUser: (id) => dispatch(inactiveUser({ id })),
requestEditUser: (id, form) => dispatch(editUser({ form, id })), requestEditUser: (id, form) => dispatch(editUser({ form, id })),
requestSubmitInvite: (form) => dispatch(submitInvite({ form })),
}); });
export default connect(null, mapDispatchToProps); export default connect(null, mapDispatchToProps);