diff --git a/.eslintrc.json b/.eslintrc.json index 056c534..6028df8 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -66,11 +66,13 @@ ], "prettier/prettier": [ "error", - { + { "usePrettierrc": true, - "singleQuote": true - }, - {} + "jsxSingleQuote": true, + "singleQuote": true, + "endOfLine": "auto" + + } ], "jest/valid-title": "off", "react/button-has-type": "off", diff --git a/src/business-logic/core/places/common/entity/placeEntity.ts b/src/business-logic/core/places/common/entity/placeEntity.ts index d584a9b..b171c44 100644 --- a/src/business-logic/core/places/common/entity/placeEntity.ts +++ b/src/business-logic/core/places/common/entity/placeEntity.ts @@ -1,7 +1,7 @@ type Places = { placeType: string; name: string; - qr: null; + qr: null | string; id: string; parentId: string | null; }; diff --git a/src/driven/adapters/get-places-adapter/getPlacesAdapter.ts b/src/driven/adapters/get-places-adapter/getPlacesAdapter.ts index 700e89e..f48df14 100644 --- a/src/driven/adapters/get-places-adapter/getPlacesAdapter.ts +++ b/src/driven/adapters/get-places-adapter/getPlacesAdapter.ts @@ -16,8 +16,7 @@ const getPlacesAdapter = (): IGetPlacesPort & getPlacesAdapterReturnType => { // make the httpHandler const httpProvider = new HTTPPovider(); - const httpHandler = async () => - httpProvider.request(options); + const httpHandler = async () => httpProvider.request(options); // return the method return { diff --git a/src/driven/boundaries/state-management/stateManagementProvider.ts b/src/driven/boundaries/state-management/stateManagementProvider.ts index f734a18..c430681 100644 --- a/src/driven/boundaries/state-management/stateManagementProvider.ts +++ b/src/driven/boundaries/state-management/stateManagementProvider.ts @@ -1,6 +1,6 @@ export default abstract class StateManagementProvider { abstract useGetQuery( key: string, - httpHandler: () => Promise + httpHandler: () => Promise, ): { data: DataType | undefined; isLoading: boolean; error?: string }; } diff --git a/src/driven/boundaries/state-management/stateManagementService.ts b/src/driven/boundaries/state-management/stateManagementService.ts index 038dea1..261c358 100644 --- a/src/driven/boundaries/state-management/stateManagementService.ts +++ b/src/driven/boundaries/state-management/stateManagementService.ts @@ -15,7 +15,7 @@ export default class StateManagementService implements StateManagementProvider { useGetQuery( key: string, - httpHandler: () => Promise + httpHandler: () => Promise, ): { data: DataType | undefined; isLoading: boolean; diff --git a/src/driven/boundaries/state-management/swrBoundary.ts b/src/driven/boundaries/state-management/swrBoundary.ts index c711b54..3dc3958 100644 --- a/src/driven/boundaries/state-management/swrBoundary.ts +++ b/src/driven/boundaries/state-management/swrBoundary.ts @@ -4,7 +4,7 @@ import StateManagementProvider from './stateManagementProvider'; export default class SwrBoundary implements StateManagementProvider { useGetQuery( key: string, - httpHandler: () => Promise + httpHandler: () => Promise, ): { data: DataType | undefined; isLoading: boolean; diff --git a/src/driven/utils/components/page-title/pageTitle.tsx b/src/driven/utils/components/page-title/pageTitle.tsx index 519ef93..c1bc65f 100644 --- a/src/driven/utils/components/page-title/pageTitle.tsx +++ b/src/driven/utils/components/page-title/pageTitle.tsx @@ -7,5 +7,11 @@ interface IPageTitleProps { export default function PageTitle(props: IPageTitleProps) { const { title, className } = props; - return
{title}
; + return ( +
+ {title} +
+ ); } diff --git a/src/driven/utils/constants/staticMessages.ts b/src/driven/utils/constants/staticMessages.ts index 9257fca..64031a1 100644 --- a/src/driven/utils/constants/staticMessages.ts +++ b/src/driven/utils/constants/staticMessages.ts @@ -10,6 +10,7 @@ export const staticMessages = { place_id: 'Place id', title: 'title', status: 'Status', + placeType: 'Place Type', address: 'Address', qrCode: 'qrCode', createUser: 'Create user', diff --git a/src/driving/application/core/common/table-row/infra/TableRowInfra.tsx b/src/driving/application/core/common/table-row/infra/TableRowInfra.tsx index 4ecd83b..c4ba581 100644 --- a/src/driving/application/core/common/table-row/infra/TableRowInfra.tsx +++ b/src/driving/application/core/common/table-row/infra/TableRowInfra.tsx @@ -9,5 +9,11 @@ export default function TableRow(props: ITableRowInfra) { const { isRowSelected } = useTableRowVM({ selectedRowId, rowId }); - return ; + return ( + + ); } diff --git a/src/driving/application/core/common/table-row/infra/protocols.ts b/src/driving/application/core/common/table-row/infra/protocols.ts index a4c9a07..c2a94de 100644 --- a/src/driving/application/core/common/table-row/infra/protocols.ts +++ b/src/driving/application/core/common/table-row/infra/protocols.ts @@ -1,7 +1,7 @@ export interface ITableRowInfra { selectedRowId: string; rowData: { - rowItemsTitle: string[]; + rowItemsTitle: (string | null)[]; rowId: string; }; setSelectedRowId: React.Dispatch>; diff --git a/src/driving/application/core/common/table-row/view/TableRow.tsx b/src/driving/application/core/common/table-row/view/TableRow.tsx index 714d674..6200cc6 100644 --- a/src/driving/application/core/common/table-row/view/TableRow.tsx +++ b/src/driving/application/core/common/table-row/view/TableRow.tsx @@ -6,7 +6,14 @@ export default function TableRowView(props: ITableRowProps) { const { isSelected, setSelectedRowId, rowData } = props; const { rowId, rowItemsTitle } = rowData; const columns = rowItemsTitle.map((rowItemTitle, index) => { - return ; + return ( + + ); }); return setSelectedRowId(rowId)}>{columns}; diff --git a/src/driving/application/core/common/table-row/view/protocols.ts b/src/driving/application/core/common/table-row/view/protocols.ts index b619d17..eeba1fb 100644 --- a/src/driving/application/core/common/table-row/view/protocols.ts +++ b/src/driving/application/core/common/table-row/view/protocols.ts @@ -1,7 +1,7 @@ export interface ITableRowProps { isSelected: boolean; rowData: { - rowItemsTitle: string[]; + rowItemsTitle: (string | null)[]; rowId: string; }; setSelectedRowId: React.Dispatch>; diff --git a/src/driving/application/core/common/table-row/view/table-row-item/view/RowItem.tsx b/src/driving/application/core/common/table-row/view/table-row-item/view/RowItem.tsx index d3fe46b..ca0e747 100644 --- a/src/driving/application/core/common/table-row/view/table-row-item/view/RowItem.tsx +++ b/src/driving/application/core/common/table-row/view/table-row-item/view/RowItem.tsx @@ -1,7 +1,7 @@ import React from 'react'; interface IRowItemProp { - title: string; + title: string | null; hasCheckbox: boolean; isSelected: boolean; } @@ -17,7 +17,11 @@ export default function RowItem(props: IRowItemProp) { isSelected ? 'opacity-100' : 'opacity-0' }`} > - + + ✓ + )} {title} diff --git a/src/driving/application/core/places-list/view/PlacesListView.tsx b/src/driving/application/core/places-list/view/PlacesListView.tsx index adb7c70..8258417 100644 --- a/src/driving/application/core/places-list/view/PlacesListView.tsx +++ b/src/driving/application/core/places-list/view/PlacesListView.tsx @@ -1,39 +1,19 @@ -import React from 'react'; +import React, { useMemo } from 'react'; import { staticMessages } from '~/driven/utils/constants/staticMessages'; import Loading from '~/driven/utils/components/loading/Loading'; +import Places from '~/business-logic/core/places/common/entity/placeEntity'; import TableRow from '../../common/table-row'; import { IPlacesListProps } from './protocols'; export default function UsersListView(props: IPlacesListProps) { const { selectedRowId, setSelectedRowId, placesList } = props; - console.log(placesList.data); - const rows = () => { - const placesdata = [ - { - id: '1', - place_id: '6440020b89366fdcaf15a8c2', - title: 'flat demoplace ', - status: 'demo', - address: 'demoplace', - }, - { - id: '2', - place_id: '6440020b89366fdcaf15asdfa', - title: 'flat demoplace second ', - status: 'demo second', - address: 'demoplace second', - }, - ]; - return placesdata.map((places) => { + const rows = useMemo(() => { + if (!placesList.data) return null; + + return placesList.data.getData().map((places) => { const rowData = { - rowItemsTitle: [ - places.id, - places.title, - places.status, - places.address, - '', - ], + rowItemsTitle: [places.name, places.placeType, places.qr], rowId: places.id, }; return ( @@ -45,27 +25,36 @@ export default function UsersListView(props: IPlacesListProps) { /> ); }); - }; + }, [placesList]); if (placesList.isLoading) return ( -
+
); + const tableTitles: Pick = { + name: staticMessages.global.title, + placeType: staticMessages.global.placeType, + qr: staticMessages.global.qrCode, + }; + const titles = Object.keys(tableTitles).map((titleKey) => { + const key = titleKey as keyof typeof tableTitles; + + const title = tableTitles[key]; + return ( + + {title} + + ); + }); return ( - - - - - - - - - +
{staticMessages.global.place_id}{staticMessages.global.title}{staticMessages.global.status}{staticMessages.global.address}{staticMessages.global.qrCode}
+ + {titles} - {rows()} + {rows}
); } diff --git a/src/driving/application/core/users-list/view/UsersListView.tsx b/src/driving/application/core/users-list/view/UsersListView.tsx index b870e7d..0535ef8 100644 --- a/src/driving/application/core/users-list/view/UsersListView.tsx +++ b/src/driving/application/core/users-list/view/UsersListView.tsx @@ -1,29 +1,20 @@ -import React from 'react'; +/* eslint-disable @typescript-eslint/no-unused-vars */ +import React, { useMemo } from 'react'; import { staticMessages } from '~/driven/utils/constants/staticMessages'; +import Users from '~/business-logic/core/users/common/entity/entity'; +import Loading from '~/driven/utils/components/loading/Loading'; import TableRow from '../../common/table-row'; import { IUserListProps } from './protocols'; export default function UsersListView(props: IUserListProps) { const { selectedRowId, setSelectedRowId, usersList } = props; - console.log(usersList.data); - const rows = () => { - const userdata = [ - { - id: '1', - firstname: 'behnam', - lastname: 'rahimpour', - }, - { - id: '2', - firstname: 'Salar', - lastname: 'Sali', - }, - ]; + const rows = useMemo(() => { + if (!usersList.data) return null; - return userdata.map((user) => { + return usersList.data.getData().map((user) => { const rowData = { rowItemsTitle: [user.firstname, user.lastname], - rowId: user.id, + rowId: user.accountId, }; return ( ); }); + }, [usersList]); + const tableTitles: Pick = { + firstname: staticMessages.global.fistname, + lastname: staticMessages.global.lastname, }; + const titles = Object.keys(tableTitles).map((titleKey) => { + const key = titleKey as keyof typeof tableTitles; + + const title = tableTitles[key]; + return ( + + {title} + + ); + }); + + if (usersList.isLoading) + return ( +
+ +
+ ); + return ( - - - - - - +
{staticMessages.global.fistname}{staticMessages.global.lastname}
+ + {titles} - {rows()} + {rows}
); } diff --git a/src/driving/application/support/sidebar/view/Sidebar.tsx b/src/driving/application/support/sidebar/view/Sidebar.tsx index 726c54e..811867f 100644 --- a/src/driving/application/support/sidebar/view/Sidebar.tsx +++ b/src/driving/application/support/sidebar/view/Sidebar.tsx @@ -13,7 +13,9 @@ export default function Sidebar() { key={key} to={routesData[key].path} className={`flex text-white mb-6 text-sm w-full py-2 pl-2 rounded-lg ${ - isCurrentPage.pathname === routesData[key].path ? 'bg-primary-300' : '' + isCurrentPage.pathname === routesData[key].path + ? 'bg-primary-300' + : '' }`} > page icon diff --git a/src/driving/main/pages/CreateUser.tsx b/src/driving/main/pages/CreateUser.tsx index a984828..299e9a3 100644 --- a/src/driving/main/pages/CreateUser.tsx +++ b/src/driving/main/pages/CreateUser.tsx @@ -6,7 +6,10 @@ import CreateUser from '~/driving/application/core/create-user'; export default function CreateUserPage() { return ( <> - + ); diff --git a/src/driving/main/pages/index.tsx b/src/driving/main/pages/index.tsx index c604028..5bcd6a4 100644 --- a/src/driving/main/pages/index.tsx +++ b/src/driving/main/pages/index.tsx @@ -11,7 +11,11 @@ export default function index() {
- null} /> + null} + />
diff --git a/src/driving/main/pages/layouts/MainPageLayout.tsx b/src/driving/main/pages/layouts/MainPageLayout.tsx index f61228f..bac325a 100644 --- a/src/driving/main/pages/layouts/MainPageLayout.tsx +++ b/src/driving/main/pages/layouts/MainPageLayout.tsx @@ -4,7 +4,7 @@ import Sidebar from '~/driving/application/support/sidebar'; export default function MainPageLayout() { return ( -
+