diff --git a/README.md b/README.md index 7959ce4..913a090 100644 --- a/README.md +++ b/README.md @@ -1,69 +1,107 @@ -# React + TypeScript + Vite +# Mav Mobile UI -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. +This is a React-based web application built with Vite (react and typescript). -Currently, two official plugins are available: +## Getting started -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh +### Prerequisites -## Expanding the ESLint configuration +- Node.js (v18 or higher recommended) +- Yarn (v1.22+) (https://yarnpkg.com/) -If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules: +### Installation -```js -export default tseslint.config([ - globalIgnores(['dist']), - { - files: ['**/*.{ts,tsx}'], - extends: [ - // Other configs... - - // Remove tseslint.configs.recommended and replace with this - ...tseslint.configs.recommendedTypeChecked, - // Alternatively, use this for stricter rules - ...tseslint.configs.strictTypeChecked, - // Optionally, add this for stylistic rules - ...tseslint.configs.stylisticTypeChecked, - - // Other configs... - ], - languageOptions: { - parserOptions: { - project: ['./tsconfig.node.json', './tsconfig.app.json'], - tsconfigRootDir: import.meta.dirname, - }, - // other options... - }, - }, -]) +```bash +git clone https://mavportal.com/TobaOjo/Mav-Mobile-UI.git +cd Mav-Mobile-UI +yarn install ``` -You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules: +### Running Locally + +```bash +yarn dev +``` + +The app will be available at `http://localhost:5173`. + +To run on locally on other devices + +```bash +yarn dev --host +``` + +The app will be available at the exposed addresses to access e.g. http://1xx.xxx.x.xxx:/Mobile + +## Tech Stack + +- **React** – UI library +- **Vite** – Build tool +- **Yarn** – Package manager + +## Configuration + +Create a `.env` file to access the Mav Mobile box in unit 5 for or for any environment-specific settings: + +```env +VITE_AGX_BOX_URL=http://1xx.xxx.xxx.xxx: +``` + +## Development + +### Linting & Formatting + +```bash +yarn lint +yarn format +``` + +### Testing + +(Currently not implemented – consider adding Jest or Vitest) + +## Deployment + +To build for production: + +```bash +yarn build +``` + +- Navigate to your Mav-Mobile-UI folder +- Select the Dist folder +- Compress to (ZIP) +- Log into box on Moba using Session > SSH and putting IP in Remote Host. +- Creds are mav:mav +- Drag and drop dist.zip into file explorer menu on left hand side (has to be named dist.zip exactly). +- Run command + +```bash +sudo ./integrate-web-ui.sh +``` + +Run + +```bash +sudo nano web-static/index.html +``` + +- add the following between the lines & ```js -// eslint.config.js -import reactX from 'eslint-plugin-react-x' -import reactDom from 'eslint-plugin-react-dom' - -export default tseslint.config([ - globalIgnores(['dist']), - { - files: ['**/*.{ts,tsx}'], - extends: [ - // Other configs... - // Enable lint rules for React - reactX.configs['recommended-typescript'], - // Enable lint rules for React DOM - reactDom.configs.recommended, - ], - languageOptions: { - parserOptions: { - project: ['./tsconfig.node.json', './tsconfig.app.json'], - tsconfigRootDir: import.meta.dirname, - }, - // other options... - }, - }, -]) + + + ``` + +- Run + +```bash +sudo reboot +``` + +It should come back up all working diff --git a/dist.zip b/dist.zip new file mode 100644 index 0000000..7c4845e Binary files /dev/null and b/dist.zip differ diff --git a/src/components/SightingModal/SightingModal.tsx b/src/components/SightingModal/SightingModal.tsx index f748c7b..f4c2d8f 100644 --- a/src/components/SightingModal/SightingModal.tsx +++ b/src/components/SightingModal/SightingModal.tsx @@ -160,12 +160,13 @@ const SightingModal = ({ isSightingModalOpen, handleClose, sighting, onDelete }:
{sighting?.seenCount ?? "-"}
- {sighting?.make && ( -
-
Make
-
{sighting?.make ?? "-"}
-
- )} + {sighting?.make || + (sighting?.make.trim() && ( +
+
Make
+
{sighting?.make ?? "-"}
+
+ ))} {sighting?.model || (!sighting?.model.trim() && (
@@ -173,12 +174,13 @@ const SightingModal = ({ isSightingModalOpen, handleClose, sighting, onDelete }:
{sighting?.model ?? "-"}
))} - {sighting?.color && ( -
-
Colour
-
{sighting?.color ?? "-"}
-
- )} + {sighting?.color || + (!sighting?.color.trim() && ( +
+
Colour
+
{sighting?.color ?? "-"}
+
+ ))}
Time