diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..fb8768d --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,12 @@ +services: + client: + container_name: client + build: + context: ./frontend_reactjs + dockerfile: Dockerfile + volumes: + - ./frontend_reactjs:/app + - /app/node_modules + ports: + - 5173:5173 + restart: always \ No newline at end of file diff --git a/frontend_reactjs/Dockerfile b/frontend_reactjs/Dockerfile new file mode 100644 index 0000000..e13c91a --- /dev/null +++ b/frontend_reactjs/Dockerfile @@ -0,0 +1,13 @@ +FROM node:lts-alpine + +WORKDIR /app + +COPY package*.json ./ + +RUN npm install + +COPY . . + +EXPOSE 5173 + +CMD ["npm", "run", "dev"] \ No newline at end of file diff --git a/frontend_reactjs/src/components/ServersView.tsx b/frontend_reactjs/src/components/ServersView.tsx index c3258cd..36ad6b4 100644 --- a/frontend_reactjs/src/components/ServersView.tsx +++ b/frontend_reactjs/src/components/ServersView.tsx @@ -39,7 +39,9 @@ export default function ServersView() { const serversColumns: GridColDef[] = [ //{ field: 'id', headerName: 'ID', type: "number" }, - { field: 'name', headerName: 'Название', type: "string", editable: true }, + { + field: 'name', headerName: 'Название', type: "string", editable: true, + }, { field: 'region_id', editable: true, diff --git a/frontend_reactjs/src/components/modals/CreateFromGridColModal.tsx b/frontend_reactjs/src/components/modals/CreateFromGridColModal.tsx new file mode 100644 index 0000000..47a0aeb --- /dev/null +++ b/frontend_reactjs/src/components/modals/CreateFromGridColModal.tsx @@ -0,0 +1,9 @@ +import React from 'react' + +function CreateFromGridColModal() { + return ( +
CreateFromGridColModal
+ ) +} + +export default CreateFromGridColModal \ No newline at end of file diff --git a/frontend_reactjs/src/pages/ApiTest.tsx b/frontend_reactjs/src/pages/ApiTest.tsx index de42be9..33e5927 100644 --- a/frontend_reactjs/src/pages/ApiTest.tsx +++ b/frontend_reactjs/src/pages/ApiTest.tsx @@ -1,10 +1,52 @@ -import { Box } from "@mui/material" +import { Box, Button } from "@mui/material" +import { useCities } from "../hooks/swrHooks" +import { useEffect, useState } from "react" +import { useDebounce } from "@uidotdev/usehooks" +import { DataGrid, GridColDef } from "@mui/x-data-grid" +import axiosInstance from "../http/axiosInstance" +import { BASE_URL } from "../constants" export default function ApiTest() { + const limit = 10 + + const [paginationModel, setPaginationModel] = useState({ + page: 1, + pageSize: limit + }) + + const [rowCount, setRowCount] = useState(0) + + const fetchCount = async () => { + await axiosInstance.get(`/general/cities_count`, { + baseURL: BASE_URL.fuel + }).then(response => { + setRowCount(response.data) + }) + } + + const { cities, isLoading } = useCities(paginationModel.pageSize, paginationModel.page) + + useEffect(() => { + fetchCount() + }, []) + + const citiesColumns: GridColDef[] = [ + { field: 'id' }, + { field: 'name' }, + ] + return ( - + ) } \ No newline at end of file diff --git a/frontend_reactjs/vite.config.js b/frontend_reactjs/vite.config.js index 09a1ffb..e64b711 100644 --- a/frontend_reactjs/vite.config.js +++ b/frontend_reactjs/vite.config.js @@ -4,6 +4,10 @@ import { VitePWA } from "vite-plugin-pwa"; import { nodePolyfills } from 'vite-plugin-node-polyfills'; // https://vitejs.dev/config/ export default defineConfig({ + server: { + host: "0.0.0.0", + port: 5173 + }, plugins: [ nodePolyfills(), react(), diff --git a/frontend_reactjs/vite.config.ts b/frontend_reactjs/vite.config.ts index c7e4f13..81fcb78 100644 --- a/frontend_reactjs/vite.config.ts +++ b/frontend_reactjs/vite.config.ts @@ -5,6 +5,10 @@ import { nodePolyfills } from 'vite-plugin-node-polyfills' // https://vitejs.dev/config/ export default defineConfig({ + server: { + host: "0.0.0.0", + port: 5173 + }, plugins: [ nodePolyfills(), react(),