diff --git a/public/assets/icons/createuser.svg b/public/assets/icons/createuser.svg new file mode 100644 index 0000000..081c6c0 --- /dev/null +++ b/public/assets/icons/createuser.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/icons/users.svg b/public/assets/icons/users.svg new file mode 100644 index 0000000..5c48177 --- /dev/null +++ b/public/assets/icons/users.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/driven/boundaries/http-boundary/httpBoundary.ts b/src/driven/boundaries/http-boundary/httpBoundary.ts index b14b43e..f5f5ef5 100644 --- a/src/driven/boundaries/http-boundary/httpBoundary.ts +++ b/src/driven/boundaries/http-boundary/httpBoundary.ts @@ -1,5 +1,5 @@ import axios, { AxiosRequestConfig } from 'axios'; -import { staticMessages } from '~/driven/utils/configs/staticMessages'; +import { staticMessages } from '~/driven/utils/constants/staticMessages'; export class HTTPBoundary { async request(options: AxiosRequestConfig) { diff --git a/src/driven/utils/components/inputs/simple-input/SimpleInput.tsx b/src/driven/utils/components/inputs/simple-input/SimpleInput.tsx new file mode 100644 index 0000000..4fd7158 --- /dev/null +++ b/src/driven/utils/components/inputs/simple-input/SimpleInput.tsx @@ -0,0 +1,16 @@ +import React from 'react' + +interface ISimpleInput { + title: string; + className?: string; +} + +export default function SimpleInput(props: ISimpleInput) { + const { title, className } = props; + return ( +
+ + +
+ ) +} diff --git a/src/driven/utils/configs/appConfig.ts b/src/driven/utils/configs/appConfig.ts index 923fd3c..dac6474 100644 --- a/src/driven/utils/configs/appConfig.ts +++ b/src/driven/utils/configs/appConfig.ts @@ -1,9 +1,26 @@ +import { icons } from "../constants/assertUrls"; +import { staticMessages } from "../constants/staticMessages"; + export const appConfig = {}; export const routes = { - home: '/', + usersList: '/', + createUser: '/create-user' }; +export const routesData = { + usersList: { + path: routes.usersList, + icon: icons.users, + title: staticMessages.global.users + }, + createUser: { + path: routes.createUser, + icon: icons.createUser, + title: staticMessages.global.createUser + } +} + const baseApiUrl = import.meta.env.BASE_API_URL; export const apiUrls = { diff --git a/src/driven/utils/constants/assertUrls.ts b/src/driven/utils/constants/assertUrls.ts index cc3a18e..0e1fdfa 100644 --- a/src/driven/utils/constants/assertUrls.ts +++ b/src/driven/utils/constants/assertUrls.ts @@ -1,5 +1,7 @@ const baseAssetsUrl = 'assets/'; const baseIconsUrl = baseAssetsUrl + 'icons/'; export const icons = { - logo: baseIconsUrl + 'logo.svg' + logo: baseIconsUrl + 'logo.svg', + users: baseIconsUrl + 'users.svg', + createUser: baseIconsUrl + 'createuser.svg' } \ No newline at end of file diff --git a/src/driven/utils/constants/staticMessages.ts b/src/driven/utils/constants/staticMessages.ts index bc8f038..4641f23 100644 --- a/src/driven/utils/constants/staticMessages.ts +++ b/src/driven/utils/constants/staticMessages.ts @@ -11,7 +11,9 @@ export const staticMessages = { title: 'title', status: 'Status', address: 'Address', - qrCode: 'qrCode' + qrCode: 'qrCode', + createUser: 'Create user', + phoneNumber: 'Phone Number' }, service: { errors: { diff --git a/src/driven/utils/protocols/serviceProtocols.ts b/src/driven/utils/protocols/serviceProtocols.ts index 25ab9c6..3e7fd0b 100644 --- a/src/driven/utils/protocols/serviceProtocols.ts +++ b/src/driven/utils/protocols/serviceProtocols.ts @@ -1 +1,9 @@ export type RequestMethods = 'get' | 'post' | 'put' | 'delete'; + +export type apiGlobalResponseObject = { + type: 'Success' | 'client Error' | string; + status: 200 | 400 | 401 | 500 | number; + message: string; + description: string; + data: DataType; +} \ No newline at end of file diff --git a/src/driving/application/core/table-row/index.tsx b/src/driving/application/core/common/table-row/index.tsx similarity index 100% rename from src/driving/application/core/table-row/index.tsx rename to src/driving/application/core/common/table-row/index.tsx diff --git a/src/driving/application/core/table-row/infra/TableRowInfra.tsx b/src/driving/application/core/common/table-row/infra/TableRowInfra.tsx similarity index 100% rename from src/driving/application/core/table-row/infra/TableRowInfra.tsx rename to src/driving/application/core/common/table-row/infra/TableRowInfra.tsx diff --git a/src/driving/application/core/table-row/infra/protocols.ts b/src/driving/application/core/common/table-row/infra/protocols.ts similarity index 100% rename from src/driving/application/core/table-row/infra/protocols.ts rename to src/driving/application/core/common/table-row/infra/protocols.ts diff --git a/src/driving/application/core/table-row/view/TableRow.tsx b/src/driving/application/core/common/table-row/view/TableRow.tsx similarity index 79% rename from src/driving/application/core/table-row/view/TableRow.tsx rename to src/driving/application/core/common/table-row/view/TableRow.tsx index f338599..b84f925 100644 --- a/src/driving/application/core/table-row/view/TableRow.tsx +++ b/src/driving/application/core/common/table-row/view/TableRow.tsx @@ -6,7 +6,7 @@ export default function TableRowView(props: ITableRowProps) { const { isSelected, setSelectedRowId, rowData } = props; const { rowId, rowItemsTitle } = rowData; const columns = rowItemsTitle.map((rowItemTitle, index) => { - return + return }) return ( diff --git a/src/driving/application/core/table-row/view/protocols.ts b/src/driving/application/core/common/table-row/view/protocols.ts similarity index 100% rename from src/driving/application/core/table-row/view/protocols.ts rename to src/driving/application/core/common/table-row/view/protocols.ts diff --git a/src/driving/application/core/table-row/view/table-row-item/view/RowItem.tsx b/src/driving/application/core/common/table-row/view/table-row-item/view/RowItem.tsx similarity index 100% rename from src/driving/application/core/table-row/view/table-row-item/view/RowItem.tsx rename to src/driving/application/core/common/table-row/view/table-row-item/view/RowItem.tsx diff --git a/src/driving/application/core/table-row/viewmodel/protocols.ts b/src/driving/application/core/common/table-row/viewmodel/protocols.ts similarity index 100% rename from src/driving/application/core/table-row/viewmodel/protocols.ts rename to src/driving/application/core/common/table-row/viewmodel/protocols.ts diff --git a/src/driving/application/core/table-row/viewmodel/tableRowVM.ts b/src/driving/application/core/common/table-row/viewmodel/tableRowVM.ts similarity index 100% rename from src/driving/application/core/table-row/viewmodel/tableRowVM.ts rename to src/driving/application/core/common/table-row/viewmodel/tableRowVM.ts diff --git a/src/driving/application/core/create-user/index.tsx b/src/driving/application/core/create-user/index.tsx new file mode 100644 index 0000000..1f35bc6 --- /dev/null +++ b/src/driving/application/core/create-user/index.tsx @@ -0,0 +1,3 @@ +import CreateUser from "./infra/CreateUser"; + +export default CreateUser; \ No newline at end of file diff --git a/src/driving/application/core/create-user/infra/CreateUser.tsx b/src/driving/application/core/create-user/infra/CreateUser.tsx new file mode 100644 index 0000000..efb07df --- /dev/null +++ b/src/driving/application/core/create-user/infra/CreateUser.tsx @@ -0,0 +1,6 @@ +import React from 'react' +import CreateUserView from '../view/CreateUserView' + +export default function CreateUser() { + return +} diff --git a/src/driving/application/core/create-user/view/CreateUserView.tsx b/src/driving/application/core/create-user/view/CreateUserView.tsx new file mode 100644 index 0000000..c80ba27 --- /dev/null +++ b/src/driving/application/core/create-user/view/CreateUserView.tsx @@ -0,0 +1,19 @@ +import React from 'react' +import PrimaryButton from '~/driven/utils/components/buttons/primary-button/PrimaryButton' +import SimpleInput from '~/driven/utils/components/inputs/simple-input/SimpleInput' +import { staticMessages } from '~/driven/utils/constants/staticMessages' + +export default function CreateUserView() { + return ( +
+
+ + + +
+
+ {}} title={staticMessages.global.submit} /> +
+
+ ) +} diff --git a/src/driving/application/core/places-list/view/PlacesListView.tsx b/src/driving/application/core/places-list/view/PlacesListView.tsx index ffcbb6b..336da1d 100644 --- a/src/driving/application/core/places-list/view/PlacesListView.tsx +++ b/src/driving/application/core/places-list/view/PlacesListView.tsx @@ -1,6 +1,6 @@ import React from 'react' -import RowItem from '../../table-row/view/table-row-item/view/RowItem' -import TableRow from '../../table-row' +import RowItem from '../../common/table-row/view/table-row-item/view/RowItem' +import TableRow from '../../common/table-row' import { IPlacesListProps } from './protocols' import { staticMessages } from '~/driven/utils/constants/staticMessages'; @@ -49,7 +49,7 @@ export default function UsersListView(props: IPlacesListProps) { ], rowId: places.id, } - return + return }) } diff --git a/src/driving/application/core/users-list/view/UsersListView.tsx b/src/driving/application/core/users-list/view/UsersListView.tsx index d2725db..ad8bb9c 100644 --- a/src/driving/application/core/users-list/view/UsersListView.tsx +++ b/src/driving/application/core/users-list/view/UsersListView.tsx @@ -1,6 +1,6 @@ import React from 'react' -import RowItem from '../../table-row/view/table-row-item/view/RowItem' -import TableRow from '../../table-row' +import RowItem from '../../common/table-row/view/table-row-item/view/RowItem' +import TableRow from '../../common/table-row' import { IUserListProps } from './protocols' import { staticMessages } from '~/driven/utils/constants/staticMessages'; @@ -40,7 +40,7 @@ export default function UsersListView(props: IUserListProps) { ], rowId: user.id, } - return + return }) } diff --git a/src/driving/application/support/sidebar/view/Sidebar.tsx b/src/driving/application/support/sidebar/view/Sidebar.tsx index ad0f4b8..0af298d 100644 --- a/src/driving/application/support/sidebar/view/Sidebar.tsx +++ b/src/driving/application/support/sidebar/view/Sidebar.tsx @@ -1,12 +1,29 @@ import React from 'react' +import { Link, useLocation } from 'react-router-dom' +import { routesData } from '~/driven/utils/configs/appConfig' import { icons } from '~/driven/utils/constants/assertUrls' export default function Sidebar() { + const isCurrentPage = useLocation() + + const pages = Object.keys(routesData).map(routeKey => { + const key = routeKey as keyof typeof routesData + return ( + + +
{routesData[key].title}
+ + ) + }) + return ( -