Compare commits

...
Author SHA1 Message Date
gorkem-bwl 9ad1e261a4 Merge branch 'develop' into fix/login-error-handling 2025-10-16 05:01:17 -04:00
Alexander Holliday 97a14ed926 Merge pull request #3017 from bluewave-labs/fix/v2/sticky-sidebar
fix/v2: sticky sidebar
2025-10-09 14:00:35 -07:00
Alex Holliday 5018c56d0d stikcy sidebar 2025-10-09 14:00:04 -07:00
Alexander Holliday c7799ca7dc Merge pull request #3016 from bluewave-labs/fix/v2/normalization
Fix/v2/normalization
2025-10-09 13:56:10 -07:00
Alex Holliday 78b5cc9c6f ts 2025-10-09 13:55:39 -07:00
Alex Holliday ab3e6cdff9 normalzie on FE 2025-10-09 13:53:34 -07:00
Alexander Holliday 1cc01e6952 Merge pull request #3015 from bluewave-labs/feat/v2/fallbacks
feat/v2: add fallbacks
2025-10-09 12:46:19 -07:00
Alex Holliday fb90f193b1 add fallbacks 2025-10-09 12:44:27 -07:00
Alexander Holliday 1bacab89bb Merge pull request #3014 from bluewave-labs/fix/v2/auth-pages
fix/v2: add missing auth elements
2025-10-09 11:07:43 -07:00
Alex Holliday 7378f2e33b add missing auth elements 2025-10-09 11:06:34 -07:00
Alexander Holliday d0bb2b2ad5 Merge pull request #3013 from bluewave-labs/fix/network-timing
fix network timing for port and docker
2025-10-09 09:35:41 -07:00
Alex Holliday 376da7c70e fix network timing for port and docker 2025-10-09 09:33:14 -07:00
Alexander Holliday d58e5cf7ee Merge pull request #3012 from bluewave-labs/fix/keep-previous-data
fix/v2: add keep previous data
2025-10-08 15:29:41 -07:00
Alex Holliday e02eb2e30c add keep previous data 2025-10-08 15:27:53 -07:00
Alexander Holliday c4906d069a Merge pull request #3009 from bluewave-labs/feat/v2-implement-actions
update usePatch, implement actions
2025-10-08 15:00:43 -07:00
Alex Holliday d4ed535454 update prod env 2025-10-08 14:52:21 -07:00
Alex Holliday f9d0ab5e07 update usePatch, implement actions 2025-10-08 14:28:51 -07:00
Alexander Holliday 0a5efc75cd Merge pull request #3008 from bluewave-labs/feat/v2/uptime-details
feat/v2/uptime details
2025-10-08 13:48:05 -07:00
Alex Holliday aae1fefb31 add checks endpoint 2025-10-08 13:45:07 -07:00
Alex Holliday 86bb28e239 pagination 2025-10-08 13:44:41 -07:00
Alex Holliday 16b68b3d00 rever types 2025-10-07 15:46:35 -07:00
Alex Holliday a700f446fd add header 2025-10-07 15:46:09 -07:00
Alex Holliday 2246f227d1 30m -> 2h 2025-10-07 14:45:07 -07:00
Alex Holliday 29fbf0a362 charts 2025-10-07 14:44:55 -07:00
Alex Holliday 8a1fc94c31 stat boxes 2025-10-06 15:08:55 -07:00
Alex Holliday abadc99bf1 status 2025-10-06 13:59:31 -07:00
Alexander Holliday 7af7647bbf Merge pull request #2999 from bluewave-labs/feat-allow-admin-change-passwords
Add superadmin password reset functionality for team members
2025-10-06 12:52:46 -07:00
karenvicent 9a24090337 fix variable name 2025-10-06 15:43:17 -04:00
karenvicent d81a4ef0ee fix user service 2025-10-06 15:15:56 -04:00
Alexander Holliday cfb1830b55 Merge pull request #3005 from bluewave-labs/feat/v2/uptime
Feat/v2/uptime
2025-10-06 11:48:39 -07:00
Alex Holliday f7c094317a remove unused 2025-10-06 11:43:13 -07:00
Alex Holliday 56e0ac9640 actions menu 2025-10-06 11:40:08 -07:00
Alex Holliday 61651a0f4d action menu 2025-10-06 11:34:29 -07:00
Alex Holliday 7c3a05077c tooltip 2025-10-06 10:56:29 -07:00
Gorkem Cetin (BWL) 2d29bce97b Update CONTRIBUTING.md 2025-10-06 12:35:23 -04:00
Alexander Holliday 4f45baab00 Merge pull request #3003 from evermos/develop
Add Affinity, Tolerations, Request limit
2025-10-06 09:00:57 -07:00
Alexander Holliday 6def64d38e Merge pull request #3004 from bluewave-labs/fix/incident/numbers
Fix: Total Incident Number
2025-10-06 08:58:23 -07:00
Br0wnHammer 32b31076e6 Fix: Total Incident Number 2025-10-06 20:14:21 +05:30
ariretiarno 91a4911d42 protocol 2025-10-05 22:49:20 +07:00
ariretiarno 7298faac2b protocol 2025-10-05 22:47:48 +07:00
ariretiarno 711253beb2 affinity request limit 2025-10-05 22:36:39 +07:00
ariretiarno a380389386 ingress server 2025-10-05 22:25:33 +07:00
Alex Holliday f6b97c691e iniital uptime 2025-10-03 15:40:53 -07:00
karenvicent f31ff994fe fix errors 2025-10-03 17:11:05 -04:00
Alexander Holliday a46ef5c9dd Merge pull request #3001 from bluewave-labs/fix/v2/text-input
theme update
2025-10-03 12:57:33 -07:00
Alex Holliday 0018c452bb theme update 2025-10-03 12:56:52 -07:00
Alexander Holliday 6c6fc28f6e Merge pull request #3000 from bluewave-labs/feat/v2/create/uptime
feat/v2/create/uptime
2025-10-03 12:50:31 -07:00
Alex Holliday 575cf31c78 add typescript dev dep 2025-10-03 12:49:51 -07:00
Alex Holliday 938d9b6642 feat/v2/uptime/create 2025-10-03 12:45:21 -07:00
Gorkem Cetin (BWL) 9d68d35ca8 Merge pull request #2996 from JithendraKavala/docs/imporove-contributing-setup-instructions
docs: improve local development setup instructions in CONTRIBUTING.md
2025-10-03 15:34:18 -04:00
Alexander Holliday 8033eea267 Merge pull request #2997 from a-y-a-n-das/fix-week-datestring
fix(chart): correct 'week' date string format in chart aggregation
2025-10-02 13:35:40 -07:00
Alexander Holliday 469c4d7e99 Merge pull request #2994 from VivekKavala/fix-inaccurate-ping-times
fix: Correct inaccurate ping response times
2025-10-02 13:34:11 -07:00
karenvicent 5159d43cad fix save button validation 2025-10-02 15:40:21 -04:00
karenvicent c5bbb7aa2c Merge branch 'develop' into feat-allow-admin-change-passwords 2025-10-02 15:20:32 -04:00
karenvicent 4317d1a47e chace password by superadmin 2025-10-02 15:19:42 -04:00
a-y-a-n-das a1c04ba35e fixed the format 2025-10-02 20:43:00 +05:30
Alexander Holliday 95ad3e71ca Merge pull request #2987 from bluewave-labs/feat/v2/components
feat: move components to v1 and v2 dirs
2025-10-02 17:22:20 +05:30
jithendra Kavala 080a33fac7 docs: improve local development setup instructions in CONTRIBUTING.md 2025-10-02 13:51:30 +05:30
Vivek Kavala 851d722746 fix: remove manual response time calculation in favor of library-native timing
The manual timing calculations were adding Node.js processing overhead
and were less accurate than the native timing provided by the respective
libraries (ping, got, etc.). Now using response.time from each library
for more accurate network response time measurements.
2025-10-02 12:46:51 +05:30
Alexander Holliday 5dbfb3b8c5 Merge pull request #2991 from bluewave-labs/feat/v2/sidebar
feat: v2/sidebar
2025-10-01 13:58:26 -07:00
Alex Holliday 735054b4e1 remove unused error 2025-10-01 13:57:04 -07:00
Alex Holliday 3ae2f857d4 add v2 sidebar 2025-10-01 13:55:32 -07:00
Alexander Holliday 220abb8579 Merge pull request #2989 from evermos/helmchart
helm chart
2025-10-01 13:34:50 -07:00
karenvicent 468a67f937 git stash push -m "work in progress" 2025-10-01 12:49:48 -04:00
Muhamad Ari Retiarno 99b3e3c516 Merge pull request #1 from evermos/helmchart
Helmchart
2025-10-01 11:06:47 +07:00
ariretiarno 8d48b2cc8a client host 2025-10-01 09:33:32 +07:00
ariretiarno d63731fced client host 2025-10-01 09:22:42 +07:00
ariretiarno 7a352cdcb3 client host 2025-10-01 09:16:45 +07:00
ariretiarno 4744c05f07 pvc 2025-09-30 11:35:14 +07:00
ariretiarno c6cf7a4639 helm chart 2025-09-30 11:30:21 +07:00
ariretiarno 7f2318da01 helm chart 2025-09-30 11:28:22 +07:00
Alex Holliday fc9018e314 Add collapse button and logo 2025-09-27 15:47:56 -07:00
Alexander Holliday c30d6019df Merge pull request #2987 from bluewave-labs/feat/v2/components
feat: move components to v1 and v2 dirs
2025-09-27 14:58:11 -07:00
Alex Holliday b57ed47592 remove mode prop 2025-09-27 14:57:55 -07:00
Alexander Holliday 6234be17cd Merge pull request #2986 from bluewave-labs/feat/v2/root/layout
feat/v2/root/layout
2025-09-27 14:55:17 -07:00
Alex Holliday 5cab842f0a move components to v1 and v2 dirs 2025-09-27 14:54:55 -07:00
Alex Holliday ca84c60614 Merge branch 'feat/v2/root/layout' of github.com:bluewave-labs/checkmate into feat/v2/root/layout 2025-09-27 14:48:44 -07:00
Alex Holliday 09fbc6b0b2 remove unused mode 2025-09-27 14:48:05 -07:00
Alexander Holliday f8b1998564 Merge branch 'develop' into feat/v2/root/layout 2025-09-27 14:43:18 -07:00
Alex Holliday 4d254b004d add gitignore 2025-09-27 14:38:14 -07:00
Alex Holliday 1d5f2427ed add root layout 2025-09-26 16:01:05 -07:00
Alexander Holliday 0249f89a8c Merge pull request #2984 from bluewave-labs/feat/v2/router
move v2 routes to v2 router
2025-09-26 15:33:23 -07:00
Alex Holliday ce0aaa7ac7 move v2 routes to v2 router 2025-09-26 15:31:55 -07:00
Alexander Holliday b7db3f96ba Merge pull request #2983 from bluewave-labs/feat/v2/register
add v2 register page
2025-09-26 15:25:41 -07:00
Alex Holliday ad5ab82c3b add v2 register page 2025-09-26 15:23:56 -07:00
Alexander Holliday 0567569faa Merge pull request #2982 from bluewave-labs/feat/v2/theme
feat: add typography to theme, change UsePost return type
2025-09-26 15:23:23 -07:00
Alex Holliday a8f111b399 generic return type 2025-09-26 15:22:15 -07:00
Alex Holliday 7c2f789a31 add typography to theme, change UsePost return type 2025-09-26 15:19:35 -07:00
Alexander Holliday 77c76b6b6d Merge pull request #2981 from bluewave-labs/feat/v2/auth/login
feat/v2/auth/login
2025-09-26 14:49:21 -07:00
Alex Holliday 60a90ce424 node types 2025-09-26 14:36:15 -07:00
Alex Holliday 3f581ae1b0 esm safe path 2025-09-26 14:32:16 -07:00
Alex Holliday 277aff3898 remove unused 2025-09-26 14:22:25 -07:00
Alex Holliday 0c5b9a863b add loading 2025-09-26 14:16:59 -07:00
Alex Holliday cb1e10f0a9 add v2 login page 2025-09-25 16:06:52 -07:00
Alexander Holliday 659162d60c Merge pull request #2980 from bluewave-labs/feat/typescript-config
Add typescript config, move to v1 dir
2025-09-25 10:23:15 -07:00
Alex Holliday 28ef465b3a update action name 2025-09-25 10:22:47 -07:00
Alex Holliday e29f7af858 add client build check 2025-09-25 10:21:31 -07:00
Alex Holliday 17b84cbe8a format 2025-09-25 10:19:08 -07:00
Alex Holliday 4d89213e1c Add typescript config, move to v1 dir 2025-09-25 10:11:41 -07:00
Alexander Holliday 879cbb8886 Merge pull request #2979 from bluewave-labs/fix/start-v2-queue
create and start v2 queue
2025-09-25 09:47:21 -07:00
Alex Holliday 5957479d03 express type 2025-09-25 09:46:11 -07:00
Alexander Holliday d7bc9bdb90 Merge pull request #2978 from bluewave-labs/feat/v2/routes
add v2 routes, controllers
2025-09-25 09:43:54 -07:00
Alex Holliday 811a6bf222 create and start v2 queue 2025-09-25 09:38:41 -07:00
Alex Holliday 6d0c560948 add v2 routes, controllers 2025-09-24 15:55:09 -07:00
Alexander Holliday f4b76baaa2 Merge pull request #2977 from bluewave-labs/feat/v2/services
feat/v2/services
2025-09-24 14:21:28 -07:00
Alex Holliday 76f4e974db dev types 2025-09-24 14:20:30 -07:00
Alex Holliday 66e5441bdf fix import path 2025-09-23 15:23:20 -07:00
Alex Holliday 68f4adfbfe add v2 services 2025-09-23 15:22:08 -07:00
Alexander Holliday 35a712eafb Merge pull request #2976 from bluewave-labs/feat/v2/models
feat: add v2 models
2025-09-23 14:57:03 -07:00
Alex Holliday 2d12fbdff1 fix notification schema 2025-09-23 14:56:02 -07:00
Alex Holliday c0ff162ed9 remove v2 files 2025-09-23 14:46:32 -07:00
Alex Holliday 059408f098 add v2 models 2025-09-23 14:40:57 -07:00
Alexander Holliday b118a321b9 Merge pull request #2975 from bluewave-labs/feat/v1/structure
feat/v1/structure
2025-09-23 14:25:46 -07:00
Alex Holliday b3b6f1d834 move all v1 files to v1 dirs 2025-09-23 14:23:45 -07:00
Alex Holliday 1383d8b59a add workflow 2025-09-23 14:12:17 -07:00
Alex Holliday 990aed9f2e Revert "Merge pull request #2973 from bluewave-labs/feat/v2/auth"
This reverts commit 72882fded9, reversing
changes made to bfb299cfca.
2025-09-23 14:05:23 -07:00
Alex Holliday 003d419a64 Revert "Merge pull request #2974 from bluewave-labs/fix/cleanup"
This reverts commit 7368cb2567, reversing
changes made to 72882fded9.
2025-09-23 14:05:16 -07:00
Alexander Holliday 7368cb2567 Merge pull request #2974 from bluewave-labs/fix/cleanup
move v1 to v1 dir, add build workflow
2025-09-23 12:00:06 -07:00
Alex Holliday f945a27011 move v1 to v1 dir, add build workflow 2025-09-23 11:59:02 -07:00
Alexander Holliday 72882fded9 Merge pull request #2973 from bluewave-labs/feat/v2/auth
feat: v2/auth
2025-09-23 11:45:39 -07:00
Alex Holliday 0030394008 add migrations table 2025-09-23 11:34:25 -07:00
Alexander Holliday bfb299cfca Merge pull request #2972 from bluewave-labs/fix/update-docker-files
fix/update docker files
2025-09-23 11:01:19 -07:00
Alexander Holliday b06d5c10ea Merge pull request #2971 from bluewave-labs/feat/v2-controllers
Feat/v2 controllers
2025-09-23 11:00:40 -07:00
Alexander Holliday 2a0d4195a1 Merge pull request #2970 from bluewave-labs/feat/v2-routes
feat: v2 routes
2025-09-23 11:00:18 -07:00
Alex Holliday 11ff99613a implement auth routes, add user migration 2025-09-22 15:56:41 -07:00
Alex Holliday 0b646ee64f update docker files to build 2025-09-22 13:26:45 -07:00
Alex Holliday 23126a92cd move v1 controllers to v1 dir 2025-09-22 13:04:45 -07:00
Alex Holliday f767125acd tsx, tpyescript 2025-09-22 13:03:54 -07:00
Alex Holliday d8ed9abebf add gitignore 2025-09-22 12:53:44 -07:00
Alexander Holliday e4e75632c5 Merge pull request #2963 from bluewave-labs/translation-update-78
🌐 Updated Translations from POEditor
2025-09-18 13:40:10 -07:00
GitHub Action ddb7c24832 feat: translations updated from POEditor 2025-09-18 20:25:11 +00:00
Alexander Holliday 4a824dec81 Merge pull request #2960 from bluewave-labs/feat/bump-version
bump version
2025-09-18 12:03:26 -07:00
Alex Holliday b35fee1be8 bump version 2025-09-18 12:02:49 -07:00
Alexander Holliday 1b167af12b Merge pull request #2959 from Owaiseimdad/Addition-of-sliding-window-implementation
Addition of incident tab in creation and config page which is same.
2025-09-18 11:50:55 -07:00
Owaise f2962e34ae Fixed the formatting. 2025-09-19 00:06:31 +05:30
Owaise 386db5029a Addition of incident tab in creation and config page which is same. 2025-09-19 00:03:18 +05:30
Alexander Holliday 0e6e54a124 Merge pull request #2957 from FrancocDev/develop
Allow jsonPath to be used along expectedValue and validate the response.
2025-09-18 09:47:53 -07:00
Franco Carrara c666cb3879 fix formatting issues 2025-09-17 23:46:20 -03:00
Franco Carrara 4039517683 Add response messages to string service 2025-09-17 23:33:45 -03:00
Franco Carrara 00fc7b8038 Allow jsonPath to be used along expectedValue and validate the response. 2025-09-17 23:23:16 -03:00
Alexander Holliday 81d283ec8d Merge pull request #2956 from ajhollid/bump-dependencies
chore: bump deps
2025-09-17 15:17:14 -07:00
Alex Holliday 105100e349 bump deps 2025-09-17 15:07:55 -07:00
Alexander Holliday 4598690dbf Merge pull request #2954 from brownyroll/develop
feat: Support Thailand language
2025-09-16 09:00:51 -07:00
Bamz Kittisak Udomsri f68341c315 feat: thailang 2025-09-16 20:41:13 +07:00
Alexander Holliday e8a8cea909 Merge pull request #2953 from bluewave-labs/fix-skip-maintenance-notifications
Fix: Skip notifications during maintenance windows
2025-09-15 11:13:28 -07:00
karenvicent bf53f107e3 Merge branch 'develop' into fix-skip-maintenance-notifications 2025-09-15 12:29:47 -04:00
karenvicent 00de974528 Fix: Skip notifications for monitors during active maintenance windows 2025-09-15 12:28:37 -04:00
Alexander Holliday 0445398e94 Merge pull request #2952 from bluewave-labs/feat-notifications-body
Add monitor name and URL formatting for hardware notifications
2025-09-15 09:15:10 -07:00
karenvicent 272e2ba955 add monitor name and url to infrastructure alert 2025-09-15 08:34:51 -04:00
Alexander Holliday 0a2adc2d92 Merge pull request #2948 from bluewave-labs/feat-discord-format
Add Discord embed message formatting for notifications
2025-09-12 09:03:19 -07:00
karenvicent 7008fc1770 Merge branch 'develop' into feat-discord-format 2025-09-12 10:14:07 -04:00
karenvicent 041a261540 add llama sugestions 2025-09-12 10:13:38 -04:00
gorkem-bwl 05442af050 fix: apply prettier formatting to userService.js
- Fixed all prettier formatting issues in userService.js
- All files now pass prettier format check
- Maintained null checks and error handling improvements
2025-09-11 23:55:58 -04:00
Gorkem Cetin (BWL) 1008d819f7 Update README.md 2025-09-11 22:40:11 -04:00
gorkem-bwl 25d538504c resolve: merge conflicts with develop branch
- Resolved conflict in translationService.js by using develop branch path format
- Updated locales directory path to use 'src/locales' format
- Maintained existing login error handling improvements
2025-09-11 22:17:13 -04:00
gorkem-bwl e823533809 fix: apply prettier formatting and address code quality issues
- Fix prettier formatting issues in userService.js
- Add null checks before password comparisons to prevent runtime errors
- Improve error logging while maintaining security by not exposing sensitive info
- Address CodeRabbit and LlamaPReview feedback
2025-09-11 22:14:08 -04:00
karenvicent fb84a79a04 Add Discord embed message formatting for notifications 2025-09-11 16:29:08 -04:00
gorkem-bwl a03996d54b fix: resolve login error handling issues
- Fix translation service to load locales from correct path (src/locales)
- Improve login security to return generic error message for both invalid email and wrong password
- Make frontend error handling generic to display backend error messages properly
- Remove hardcoded string matching in favor of HTTP status code checks

Fixes login flow returning raw localization keys instead of user-facing messages

Fixes #2768
2025-08-12 21:09:14 -04:00
603 changed files with 15721 additions and 11027 deletions

No files matched your search

+1 -1
View File
@@ -7,7 +7,7 @@ import { URLSearchParams } from "url";
const API_TOKEN = process.env.POEDITOR_API;
const PROJECT_ID = process.env.POEDITOR_PROJECT_ID;
const LANGUAGES = (
process.env.LANGUAGES || "ar,zh-tw,cs,en,fi,fr,de,pt-br,ru,es,tr,ja,zh-cn"
process.env.LANGUAGES || "ar,zh-tw,cs,en,fi,fr,de,pt-br,ru,es,tr,ja,zh-cn,th"
).split(",");
const EXPORT_FORMAT = process.env.EXPORT_FORMAT || "key_value_json";
+40
View File
@@ -0,0 +1,40 @@
name: Build Check (Client & Server)
on:
pull_request:
workflow_dispatch:
jobs:
build-client:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 22
- name: Install client dependencies
working-directory: client
run: npm install
- name: Check client build
working-directory: client
run: npm run build
build-server:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 22
- name: Install server dependencies
working-directory: server
run: npm install
- name: Check server build
working-directory: server
run: npm run build
+1 -1
View File
@@ -7,7 +7,7 @@ on:
languages:
description: "Languages to synchronize (comma separated, e.g.: tr,en,es)"
required: false
default: "ar,zh-tw,cs,en,fi,fr,de,pt-br,ru,es,tr,ja,zh-cn"
default: "ar,zh-tw,cs,en,fi,fr,de,pt-br,ru,es,tr,ja,zh-cn,th"
format:
description: "Export format (key_value_json or json)"
required: false
+3 -1
View File
@@ -1 +1,3 @@
.vscode
.idea
.vscode
.VSCodeCounter
+166 -12
View File
@@ -6,7 +6,7 @@ We truly appreciate all kinds of contributions — code, ideas, translations or
Before you start, please take a moment to read the relevant section. It helps us review and accept contributions faster, and makes the whole process smoother for everyone. 💚
PS: **We work closely with contributors on our [Discord channel](https://discord.com/invite/NAb6H3UTjK)**. You’ll find community members, core maintainers, and first-timers helping each other out.
PS: **We work closely with contributors on our [Discord channel](https://discord.com/invite/NAb6H3UTjK)**. You'll find community members, core maintainers, and first-timers helping each other out.
---
@@ -32,12 +32,12 @@ PS: **We work closely with contributors on our [Discord channel](https://discord
### Get help or ask a question?
Ask anything in our [Discord server](https://discord.com/invite/NAb6H3UTjK) — we’re friendly and happy to help. [Our core contributors](https://github.com/bluewave-labs/checkmate?tab=readme-ov-file#-contributing) are active and ready to support you. You can also use [GitHub Discussions](https://github.com/bluewave-labs/Checkmate/discussions) section to ask your questions.
Ask anything in our [Discord server](https://discord.com/invite/NAb6H3UTjK) — we're friendly and happy to help. [Our core contributors](https://github.com/bluewave-labs/checkmate?tab=readme-ov-file#-contributing) are active and ready to support you. You can also use [GitHub Discussions](https://github.com/bluewave-labs/Checkmate/discussions) section to ask your questions.
### Report a bug?
1. Search [existing issues](https://github.com/bluewave-labs/checkmate/issues).
2. If it’s not listed, open a **new issue**.
2. If it's not listed, open a **new issue**.
3. Include as much detail as possible: what happened, what you expected, and steps to reproduce. Logs and screenshots help.
### Suggest a new feature?
@@ -48,19 +48,175 @@ Ask anything in our [Discord server](https://discord.com/invite/NAb6H3UTjK) —
### Set up Checkmate locally?
Frontend & backend:
#### Prerequisites
- Node.js (with npm)
- Docker
- Git
#### Step 1: Clone the Repository
```bash
git clone https://github.com/bluewave-labs/Checkmate.git
cd Checkmate
```
#### Step 2: Set Up Docker Containers (MongoDB)
Navigate to the Docker dev directory:
```bash
cd server/docker/dev
```
Build the Docker images:
```bash
./build_images.sh
```
Run MongoDB container:
```bash
docker run -d -p 27017:27017 -v $(pwd)/mongo/data:/data/db --name uptime_database_mongo uptime_database_mongo
```
Navigate back to the root directory:
```bash
cd ../../..
```
#### Step 3: Set Up the Backend (Server)
Navigate to the server directory:
```bash
cd server
```
Install dependencies:
```bash
npm install
```
Create a `.env` file in the `server` directory with the following minimum required configuration:
```env
CLIENT_HOST="http://localhost:5173"
JWT_SECRET="my_secret_key_change_this"
DB_CONNECTION_STRING="mongodb://localhost:27017/uptime_db"
TOKEN_TTL="99d"
ORIGIN="localhost"
LOG_LEVEL="debug"
```
**Environment Variables Explained:**
- `CLIENT_HOST`: Frontend URL (default: http://localhost:5173)
- `JWT_SECRET`: Secret key for JWT tokens (change to something secure)
- `DB_CONNECTION_STRING`: MongoDB connection URL
- `ORIGIN`: Origin for CORS purposes
- `TOKEN_TTL`: Token time to live (in vercel/ms format)
- `LOG_LEVEL`: Debug level (debug, info, warn, error)
Start the backend server:
```bash
npm run dev
```
By default, the frontend expects the backend on `http://localhost:3001`. Update configs if needed.
The server will run at `http://localhost:52345`.
#### Step 4: Set Up the Frontend (Client)
Open a new terminal window and navigate to the client directory from the root:
```bash
cd client
```
Install dependencies:
```bash
npm install
```
Create a `.env` file in the `client` directory:
```env
VITE_APP_API_BASE_URL="http://localhost:52345/api/v1"
VITE_APP_LOG_LEVEL="debug"
```
**Environment Variables Explained:**
- `VITE_APP_API_BASE_URL`: Backend API URL
- `VITE_APP_LOG_LEVEL`: Log level (none, error, warn, debug, info)
Start the frontend:
```bash
npm run dev
```
The client will run at `http://localhost:5173`.
#### Step 5: Access the Application
Open your browser and navigate to:
- **Frontend**: http://localhost:5173
- **Backend API**: http://localhost:52345
- **API Documentation**: http://localhost:52345/api-docs
#### Managing Docker Containers
Stop containers:
```bash
docker stop uptime_database_mongo
```
Start containers:
```bash
docker start uptime_database_mongo
```
Remove containers (if needed):
```bash
docker rm uptime_database_mongo
```
#### Troubleshooting
**Port already in use:**
- Check if another service is using ports 5173, 52345, 27017, or 6379
- Stop the conflicting service or change the port in `.env` files
**MongoDB connection issues:**
- Verify container is running: `docker ps`
- Check container logs: `docker logs uptime_database_mongo`
**Module not found errors:**
- Ensure you ran `npm install` in both `client` and `server` directories
**Need more help?**
- Check the [full documentation](https://docs.checkmate.so)
- Ask on [Discord](https://discord.com/invite/NAb6H3UTjK)
### Start contributing code?
1. Pick or open an issue (check `good-first-issue`s first)
2. (optional but highly suggested) Read a detailed structure of [Checkmate](https://deepwiki.com/bluewave-labs/Checkmate) if you would like to deep dive into the architecture.
3. Ask to be assigned. If there is alrady someone assigned and it's been more than 7 days, you can raise the flag and ask to be assigned as well.
3. Ask to be assigned. If there is already someone assigned and it's been more than 7 days, you can raise the flag and ask to be assigned as well.
4. Create a branch from `develop`.
5. Write your code.
6. Run and test locally.
@@ -75,6 +231,7 @@ Docs live in [checkmate-documentation](https://github.com/bluewave-labs/checkmat
### Help with translations?
We use [PoEditor](https://poeditor.com) for translations. You can:
- [Sign up and join your language team](https://poeditor.com/join/project/lRUoGZFCsJ).
- Translate UI strings.
- Ask questions on Discord in the relevant #translations channel.
@@ -84,6 +241,7 @@ Make sure all new UI strings in code use `t('key')`.
### Submit a pull request?
Follow the [pull request checklist](#pull-request-checklist). Your PR should:
- Be focused on one issue.
- Be tested locally.
- Use our linting and translation rules.
@@ -123,7 +281,6 @@ If one or more of these are missing, we may ask you to update your pull request
## Branching model
- Code contributions should go to the `develop` branch.
- `master` is used for stable releases.
- Use descriptive branch names, like `fix/login-error` or `feat/add-alerts`.
@@ -137,13 +294,10 @@ If one or more of these are missing, we may ask you to update your pull request
## Thank you
Thanks for making Checkmate better. We mean it. Whether it’s your first pull request or your 50th, we’re excited to build with you.
Thanks for making Checkmate better. We mean it. Whether it's your first pull request or your 50th, we're excited to build with you.
PS: feel free to introduce yourself on [Discord](https://discord.gg/YOUR-DISCORD-LINK) and say hi.
PS: feel free to introduce yourself on [Discord](https://discord.gg/NAb6H3UTjK) and say hi.
-- Checkmate team
Also make sure you read the [document about how to make a good pull request](/PULLREQUESTS.md).
+1 -1
View File
@@ -52,7 +52,7 @@ Usage instructions can be found [here](https://docs.checkmate.so/checkmate-2.1).
See installation instructions in [Checkmate documentation portal](https://docs.checkmate.so/checkmate-2.1/users-guide/quickstart).
Alternatively, you can also use [Coolify](https://coolify.io/), [Elestio](https://elest.io/open-source/checkmate), [K8s](./charts/helm/checkmate/INSTALLATION.md) or [Pikapods](https://www.pikapods.com/) to quickly spin off a Checkmate instance. If you would like to monitor your server infrastructure, you'll need [Capture agent](https://github.com/bluewave-labs/capture). Capture repository also contains the installation instructions.
Alternatively, you can also use [Coolify](https://coolify.io/), [Elestio](https://elest.io/open-source/checkmate), [K8s](./charts/helm/checkmate/INSTALLATION.md), [Sive Host](https://sive.host) (South Africa) or [Pikapods](https://www.pikapods.com/) to quickly spin off a Checkmate instance. If you would like to monitor your server infrastructure, you'll need [Capture agent](https://github.com/bluewave-labs/capture). Capture repository also contains the installation instructions.
### Using a Custom CA
@@ -1,17 +1,25 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: client
name: checkmate-client
spec:
replicas: 1
selector:
matchLabels:
app: client
app: checkmate-client
template:
metadata:
labels:
app: client
app: checkmate-client
spec:
{{- with .Values.client.affinity }}
affinity:
{{- tpl ( . | toYaml) $ | nindent 8 }}
{{- end }}
{{- with .Values.client.tolerations }}
tolerations:
{{- tpl ( . | toYaml) $ | nindent 8 }}
{{- end }}
containers:
- name: client
image: {{ .Values.client.image }}
@@ -20,3 +28,17 @@ spec:
env:
- name: UPTIME_APP_API_BASE_URL
value: "{{ .Values.server.protocol }}://{{ .Values.server.ingress.host }}/api/v1"
- name: UPTIME_APP_CLIENT_HOST
value: "{{ .Values.client.protocol }}://{{ .Values.client.ingress.host }}"
volumeMounts:
- name: config-volume
mountPath: /etc/nginx/conf.d/default.conf
subPath: default.conf
{{- with .Values.client.resources }}
resources:
{{- tpl ( . | toYaml) $ | nindent 12 }}
{{- end }}
volumes:
- name: config-volume
configMap:
name: checkmate-server-nginx-cm
@@ -2,10 +2,15 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: client-ingress
name: checkmate-client-ingress
{{- if .Values.client.ingress.annotations }}
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
{{- range $key, $value := .Values.client.ingress.annotations }}
{{ $key }}: {{ $value | quote }}
{{- end }}
{{- end }}
spec:
ingressClassName: {{ .Values.client.ingress.className }}
rules:
- host: {{ .Values.client.ingress.host }}
http:
@@ -14,7 +19,7 @@ spec:
pathType: Prefix
backend:
service:
name: client
name: checkmate-client
port:
number: {{ .Values.client.port }}
{{- end }}
@@ -1,9 +1,9 @@
apiVersion: v1
kind: Service
metadata:
name: client
name: checkmate-client
spec:
selector:
app: client
app: checkmate-client
ports:
- port: {{ .Values.client.port }}
@@ -1,27 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongodb
spec:
replicas: 1
selector:
matchLabels:
app: mongodb
template:
metadata:
labels:
app: mongodb
spec:
containers:
- name: mongodb
image: {{ .Values.mongodb.image }}
ports:
- containerPort: {{ .Values.mongodb.port }}
command: ["mongod", "--quiet", "--bind_ip_all"]
volumeMounts:
- name: mongodb-data
mountPath: /data/db
volumes:
- name: mongodb-data
persistentVolumeClaim:
claimName: mongodb-pvc
@@ -1,10 +0,0 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mongodb-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.persistence.mongodbSize }}
@@ -1,9 +1,9 @@
apiVersion: v1
kind: Service
metadata:
name: mongodb
name: checkmate-mongodb
spec:
selector:
app: mongodb
app: checkmate-mongodb
ports:
- port: {{ .Values.mongodb.port }}
@@ -0,0 +1,44 @@
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: checkmate-mongodb
spec:
replicas: 1
selector:
matchLabels:
app: checkmate-mongodb
template:
metadata:
labels:
app: checkmate-mongodb
spec:
{{- with .Values.mongodb.affinity }}
affinity:
{{- tpl ( . | toYaml) $ | nindent 8 }}
{{- end }}
{{- with .Values.mongodb.tolerations }}
tolerations:
{{- tpl ( . | toYaml) $ | nindent 8 }}
{{- end }}
containers:
- name: mongodb
image: {{ .Values.mongodb.image }}
ports:
- containerPort: {{ .Values.mongodb.port }}
command: ["mongod", "--quiet", "--bind_ip_all"]
volumeMounts:
- name: checkmate-mongo-persistent-storage
mountPath: /data/db
{{- with .Values.mongodb.resources }}
resources:
{{- tpl ( . | toYaml) $ | nindent 12 }}
{{- end }}
volumeClaimTemplates:
- metadata:
name: checkmate-mongo-persistent-storage
spec:
storageClassName: "gp3"
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: {{ .Values.persistence.mongodbSize }}
@@ -1,26 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis
spec:
replicas: 1
selector:
matchLabels:
app: redis
template:
metadata:
labels:
app: redis
spec:
containers:
- name: redis
image: {{ .Values.redis.image }}
ports:
- containerPort: {{ .Values.redis.port }}
volumeMounts:
- name: redis-data
mountPath: /data
volumes:
- name: redis-data
persistentVolumeClaim:
claimName: redis-pvc
@@ -1,10 +0,0 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: redis-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.persistence.redisSize }}
@@ -1,9 +1,11 @@
{{- if .Values.redis.enabled }}
apiVersion: v1
kind: Service
metadata:
name: redis
name: checkmate-redis
spec:
selector:
app: redis
app: checkmate-redis
ports:
- port: {{ .Values.redis.port }}
{{- end }}
@@ -0,0 +1,33 @@
{{- if .Values.redis.enabled }}
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: checkmate-redis
spec:
replicas: 1
selector:
matchLabels:
app: checkmate-redis
template:
metadata:
labels:
app: checkmate-redis
spec:
containers:
- name: redis
image: {{ .Values.redis.image }}
ports:
- containerPort: {{ .Values.redis.port }}
volumeMounts:
- name: redis-data
mountPath: /data
volumeClaimTemplates:
- metadata:
name: checkmate-redis-persistent-storage
spec:
storageClassName: "gp3"
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: {{ .Values.persistence.redisSize }}
{{- end }}
@@ -4,10 +4,6 @@
{{- fail "secrets.JWT_SECRET must be overridden and cannot be 'change_me'" }}
{{- end }}
{{- if or (not $secrets.REFRESH_TOKEN_SECRET) (eq $secrets.REFRESH_TOKEN_SECRET "change_me") }}
{{- fail "secrets.REFRESH_TOKEN_SECRET must be overridden and cannot be 'change_me'" }}
{{- end }}
apiVersion: v1
kind: Secret
metadata:
@@ -1,17 +1,25 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: server
name: checkmate-server
spec:
replicas: 1
selector:
matchLabels:
app: server
app: checkmate-server
template:
metadata:
labels:
app: server
app: checkmate-server
spec:
{{- with .Values.server.affinity }}
affinity:
{{- tpl ( . | toYaml) $ | nindent 8 }}
{{- end }}
{{- with .Values.server.tolerations }}
tolerations:
{{- tpl ( . | toYaml) $ | nindent 8 }}
{{- end }}
containers:
- name: server
image: {{ .Values.server.image }}
@@ -20,3 +28,10 @@ spec:
envFrom:
- secretRef:
name: checkmate-secrets
{{- with .Values.server.resources }}
resources:
{{- tpl ( . | toYaml) $ | nindent 12 }}
{{- end }}
env:
- name: CLIENT_HOST
value: "{{ .Values.client.protocol }}://{{ .Values.client.ingress.host }}"
@@ -2,24 +2,31 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: server-ingress
name: checkmate-server-ingress
{{- if .Values.server.ingress.annotations }}
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/cors-allow-origin: "http://{{ .Values.client.ingress.host }},https://{{ .Values.client.ingress.host }}"
nginx.ingress.kubernetes.io/cors-allow-methods: "GET, PUT, POST, DELETE, PATCH, OPTIONS"
nginx.ingress.kubernetes.io/cors-allow-headers: "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization"
nginx.ingress.kubernetes.io/cors-allow-credentials: "true"
{{- range $key, $value := .Values.server.ingress.annotations }}
{{ $key }}: {{ $value | quote }}
{{- end }}
{{- end }}
{{/*#annotations:
#nginx.ingress.kubernetes.io/rewrite-target: /
#nginx.ingress.kubernetes.io/enable-cors: "true"
#nginx.ingress.kubernetes.io/cors-allow-origin: "http://{{ .Values.client.ingress.host }},https://{{ .Values.client.ingress.host }}"
#nginx.ingress.kubernetes.io/cors-allow-methods: "GET, PUT, POST, DELETE, PATCH, OPTIONS"
#nginx.ingress.kubernetes.io/cors-allow-headers: "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization"
#nginx.ingress.kubernetes.io/cors-allow-credentials: "true"*/}}
spec:
ingressClassName: {{ .Values.server.ingress.className }}
rules:
- host: {{ .Values.server.ingress.host }}
http:
paths:
- path: /
- path: /api/v1
pathType: Prefix
backend:
service:
name: server
name: checkmate-server
port:
number: {{ .Values.server.port }}
{{- end }}
@@ -0,0 +1,41 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: checkmate-server-nginx-cm
data:
default.conf: |
server {
listen 80;
listen [::]:80;
server_name checkmate-demo.bluewavelabs.ca;
server_tokens off;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
# location /api/ {
# proxy_pass http://{{ .Values.server.ingress.host }}:5000/api/;
# proxy_http_version 1.1;
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Forwarded-Proto $scheme;
# }
location /api-docs/ {
proxy_pass http://{{ .Values.server.ingress.host }}:5000/api-docs/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
@@ -1,9 +1,9 @@
apiVersion: v1
kind: Service
metadata:
name: server
name: checkmate-server
spec:
selector:
app: server
app: checkmate-server
ports:
- port: {{ .Values.server.port }}
+23 -16
View File
@@ -1,40 +1,47 @@
client:
image: ghcr.io/bluewave-labs/checkmate-client:v2.3
image: ghcr.io/bluewave-labs/checkmate-client:v3.2.0
port: 80
protocol: http
ingress:
enabled: true
host: change_me
className: nginx
annotations: {}
server:
image: ghcr.io/bluewave-labs/checkmate-backend:v2.3
image: ghcr.io/bluewave-labs/checkmate-backend:v3.2.0
port: 52345
protocol: change_me
protocol: http
ingress:
enabled: true
host: change_me
className: nginx
annotations: {}
redis:
enabled: false
image: redis:7.2
port: 6379
mongodb:
image: mongo:7.0
image: ghcr.io/bluewave-labs/checkmate-mongo:v3.2.0
port: 27017
secrets:
JWT_SECRET: change_me
REFRESH_TOKEN_SECRET: change_me
SYSTEM_EMAIL_ADDRESS: test@example.com
SYSTEM_EMAIL_PASSWORD: change_me
SYSTEM_EMAIL_HOST: smtp.example.com
SYSTEM_EMAIL_PORT: "587"
PAGESPEED_API_KEY: change_me
DB_CONNECTION_STRING: mongodb://mongodb:27017/uptime_db
REDIS_HOST: redis
REDIS_PORT: "6379"
DB_TYPE: MongoDB
TOKEN_TTL: 99d
REFRESH_TOKEN_TTL: 99d
# REFRESH_TOKEN_SECRET: change_me
# SYSTEM_EMAIL_ADDRESS: test@example.com
# SYSTEM_EMAIL_PASSWORD: change_me
# SYSTEM_EMAIL_HOST: smtp.example.com
# SYSTEM_EMAIL_PORT: "587"
# PAGESPEED_API_KEY: change_me
DB_CONNECTION_STRING: mongodb://checkmate-mongodb.namespace.svc:27017/uptime_db
CLIENT_HOST: change_me
# REDIS_HOST: redis
# REDIS_PORT: "6379"
# DB_TYPE: MongoDB
# TOKEN_TTL: 99d
# REFRESH_TOKEN_TTL: 99d
persistence:
mongodbSize: 5Gi
+1
View File
@@ -1,3 +1,4 @@
VITE_APP_API_BASE_URL=UPTIME_APP_API_BASE_URL
VITE_APP_API_V2_BASE_URL=UPTIME_APP_API_V2_BASE_URL
VITE_APP_CLIENT_HOST=UPTIME_APP_CLIENT_HOST
VITE_APP_LOG_LEVEL=UPTIME_APP_LOG_LEVEL
+163 -9
View File
@@ -11,6 +11,7 @@
"@emotion/react": "^11.13.3",
"@emotion/styled": "^11.13.0",
"@hello-pangea/dnd": "^18.0.0",
"@hookform/resolvers": "5.2.2",
"@mui/icons-material": "6.4.11",
"@mui/lab": "6.0.0-dev.240424162023-9968b4889d",
"@mui/material": "6.4.11",
@@ -21,11 +22,14 @@
"dayjs": "1.11.13",
"flag-icons": "7.3.2",
"html2canvas": "^1.4.1",
"human-interval": "2.0.1",
"i18next": "25.4.2",
"joi": "17.13.3",
"mui-color-input": "^6.0.0",
"pretty-ms": "9.3.0",
"react": "18.3.1",
"react-dom": "^18.2.0",
"react-hook-form": "7.63.0",
"react-i18next": "^15.4.0",
"react-icons": "5.5.0",
"react-redux": "9.2.0",
@@ -34,9 +38,12 @@
"react-toastify": "^10.0.5",
"recharts": "2.15.2",
"redux-persist": "6.0.0",
"vite-plugin-svgr": "^4.2.0"
"swr": "2.3.6",
"vite-plugin-svgr": "^4.2.0",
"zod": "4.1.11"
},
"devDependencies": {
"@types/node": "24.5.2",
"@types/react": "^18.2.66",
"@types/react-dom": "^18.2.22",
"@vitejs/plugin-react": "^4.2.1",
@@ -45,7 +52,8 @@
"eslint-plugin-react-hooks": "^5.0.0",
"eslint-plugin-react-refresh": "^0.4.6",
"prettier": "^3.3.3",
"vite": "6.3.5"
"typescript": "5.9.3",
"vite": "6.3.6"
}
},
"node_modules/@ampproject/remapping": {
@@ -653,6 +661,18 @@
"react-dom": "^18.0.0 || ^19.0.0"
}
},
"node_modules/@hookform/resolvers": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-5.2.2.tgz",
"integrity": "sha512-A/IxlMLShx3KjV/HeTcTfaMxdwy690+L/ZADoeaTltLx+CVuzkeVIPuybK3jrRfw7YZnmdKsVVHAlEPIAEUNlA==",
"license": "MIT",
"dependencies": {
"@standard-schema/utils": "^0.3.0"
},
"peerDependencies": {
"react-hook-form": "^7.55.0"
}
},
"node_modules/@humanwhocodes/config-array": {
"version": "0.13.0",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
@@ -2107,6 +2127,16 @@
"integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
"license": "MIT"
},
"node_modules/@types/node": {
"version": "24.5.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.5.2.tgz",
"integrity": "sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==",
"devOptional": true,
"license": "MIT",
"dependencies": {
"undici-types": "~7.12.0"
}
},
"node_modules/@types/parse-json": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
@@ -2422,13 +2452,13 @@
}
},
"node_modules/axios": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz",
"integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==",
"version": "1.12.2",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz",
"integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
"form-data": "^4.0.4",
"proxy-from-env": "^1.1.0"
}
},
@@ -2991,6 +3021,15 @@
"node": ">=0.4.0"
}
},
"node_modules/dequal": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
"integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/doctrine": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
@@ -3756,6 +3795,20 @@
"dev": true,
"license": "ISC"
},
"node_modules/fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"hasInstallScript": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
@@ -4068,6 +4121,15 @@
"node": ">=8.0.0"
}
},
"node_modules/human-interval": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/human-interval/-/human-interval-2.0.1.tgz",
"integrity": "sha512-r4Aotzf+OtKIGQCB3odUowy4GfUDTy3aTWTfLd7ZF2gBCy3XW3v/dJLRefZnOFFnjqs5B1TypvS8WarpBkYUNQ==",
"license": "MIT",
"dependencies": {
"numbered": "^1.1.0"
}
},
"node_modules/i18next": {
"version": "25.4.2",
"resolved": "https://registry.npmjs.org/i18next/-/i18next-25.4.2.tgz",
@@ -4902,6 +4964,12 @@
"integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
"license": "MIT"
},
"node_modules/numbered": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/numbered/-/numbered-1.1.0.tgz",
"integrity": "sha512-pv/ue2Odr7IfYOO0byC1KgBI10wo5YDauLhxY6/saNzAdAs0r1SotGCPzzCLNPL0xtrAwWRialLu23AAu9xO1g==",
"license": "MIT"
},
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
@@ -5117,6 +5185,18 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/parse-ms": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz",
"integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==",
"license": "MIT",
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -5244,6 +5324,21 @@
"url": "https://github.com/prettier/prettier?sponsor=1"
}
},
"node_modules/pretty-ms": {
"version": "9.3.0",
"resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.0.tgz",
"integrity": "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==",
"license": "MIT",
"dependencies": {
"parse-ms": "^4.0.0"
},
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/prop-types": {
"version": "15.8.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
@@ -5329,6 +5424,22 @@
"react": "^18.3.1"
}
},
"node_modules/react-hook-form": {
"version": "7.63.0",
"resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.63.0.tgz",
"integrity": "sha512-ZwueDMvUeucovM2VjkCf7zIHcs1aAlDimZu2Hvel5C5907gUzMpm4xCrQXtRzCvsBqFjonB4m3x4LzCFI1ZKWA==",
"license": "MIT",
"engines": {
"node": ">=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/react-hook-form"
},
"peerDependencies": {
"react": "^16.8.0 || ^17 || ^18 || ^19"
}
},
"node_modules/react-i18next": {
"version": "15.5.1",
"resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.5.1.tgz",
@@ -6127,6 +6238,19 @@
"integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==",
"license": "MIT"
},
"node_modules/swr": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/swr/-/swr-2.3.6.tgz",
"integrity": "sha512-wfHRmHWk/isGNMwlLGlZX5Gzz/uTgo0o2IRuTMcf4CPuPFJZlq0rDaKUx+ozB5nBOReNV1kiOyzMfj+MBMikLw==",
"license": "MIT",
"dependencies": {
"dequal": "^2.0.3",
"use-sync-external-store": "^1.4.0"
},
"peerDependencies": {
"react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
}
},
"node_modules/text-segmentation": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz",
@@ -6275,6 +6399,20 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/typescript": {
"version": "5.9.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"devOptional": true,
"license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=14.17"
}
},
"node_modules/unbox-primitive": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
@@ -6294,6 +6432,13 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/undici-types": {
"version": "7.12.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.12.0.tgz",
"integrity": "sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==",
"devOptional": true,
"license": "MIT"
},
"node_modules/update-browserslist-db": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
@@ -6375,9 +6520,9 @@
}
},
"node_modules/vite": {
"version": "6.3.5",
"resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz",
"integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==",
"version": "6.3.6",
"resolved": "https://registry.npmjs.org/vite/-/vite-6.3.6.tgz",
"integrity": "sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA==",
"license": "MIT",
"dependencies": {
"esbuild": "^0.25.0",
@@ -6625,6 +6770,15 @@
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/zod": {
"version": "4.1.11",
"resolved": "https://registry.npmjs.org/zod/-/zod-4.1.11.tgz",
"integrity": "sha512-WPsqwxITS2tzx1bzhIKsEs19ABD5vmCVa4xBo2tq/SrV4RNZtfws1EnCWQXM6yh8bD08a1idvkB5MZSBiZsjwg==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
}
}
}
+12 -12
View File
@@ -5,8 +5,8 @@
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"build-dev": "vite build --mode development",
"build": "tsc -b && vite build",
"build-dev": "tsc -b && vite build --mode development",
"lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0",
"preview": "vite preview",
"format": "prettier --write .",
@@ -16,6 +16,7 @@
"@emotion/react": "^11.13.3",
"@emotion/styled": "^11.13.0",
"@hello-pangea/dnd": "^18.0.0",
"@hookform/resolvers": "5.2.2",
"@mui/icons-material": "6.4.11",
"@mui/lab": "6.0.0-dev.240424162023-9968b4889d",
"@mui/material": "6.4.11",
@@ -26,11 +27,14 @@
"dayjs": "1.11.13",
"flag-icons": "7.3.2",
"html2canvas": "^1.4.1",
"human-interval": "2.0.1",
"i18next": "25.4.2",
"joi": "17.13.3",
"mui-color-input": "^6.0.0",
"pretty-ms": "9.3.0",
"react": "18.3.1",
"react-dom": "^18.2.0",
"react-hook-form": "7.63.0",
"react-i18next": "^15.4.0",
"react-icons": "5.5.0",
"react-redux": "9.2.0",
@@ -39,17 +43,12 @@
"react-toastify": "^10.0.5",
"recharts": "2.15.2",
"redux-persist": "6.0.0",
"vite-plugin-svgr": "^4.2.0"
},
"unusedDepencies": {
"@solana/wallet-adapter-base": "0.9.25",
"@solana/wallet-adapter-material-ui": "0.16.35",
"@solana/wallet-adapter-react": "0.15.37",
"@solana/wallet-adapter-react-ui": "0.9.37",
"@solana/wallet-adapter-wallets": "0.19.34",
"@solana/web3.js": "1.98.0"
"swr": "2.3.6",
"vite-plugin-svgr": "^4.2.0",
"zod": "4.1.11"
},
"devDependencies": {
"@types/node": "24.5.2",
"@types/react": "^18.2.66",
"@types/react-dom": "^18.2.22",
"@vitejs/plugin-react": "^4.2.1",
@@ -58,6 +57,7 @@
"eslint-plugin-react-hooks": "^5.0.0",
"eslint-plugin-react-refresh": "^0.4.6",
"prettier": "^3.3.3",
"vite": "6.3.5"
"typescript": "5.9.3",
"vite": "6.3.6"
}
}
+6 -11
View File
@@ -9,8 +9,7 @@ import { CssBaseline, GlobalStyles } from "@mui/material";
import { logger } from "./Utils/Logger"; // Import the logger
import { networkService } from "./main";
import { Routes } from "./Routes";
import WalletProvider from "./Components/WalletProvider";
import AppLayout from "./Components/Layouts/AppLayout";
import AppLayout from "@/Components/v1/Layouts/AppLayout";
function App() {
const mode = useSelector((state) => state.ui.mode);
@@ -24,16 +23,12 @@ function App() {
}, []);
return (
/* Extract Themeprovider, baseline and global styles to Styles */
<ThemeProvider theme={mode === "light" ? lightTheme : darkTheme}>
<WalletProvider>
<CssBaseline />
<AppLayout>
<Routes />
</AppLayout>
<ToastContainer />
</WalletProvider>
<CssBaseline />
<AppLayout>
<Routes />
</AppLayout>
<ToastContainer />
</ThemeProvider>
);
}
@@ -2,17 +2,17 @@
import IconButton from "@mui/material/IconButton";
import Menu from "@mui/material/Menu";
import MenuItem from "@mui/material/MenuItem";
import Settings from "../../assets/icons/settings-bold.svg?react";
import Dialog from "../../Components/Dialog";
import Settings from "../../../assets/icons/settings-bold.svg?react";
import Dialog from "../Dialog/index.jsx";
// Utils
import { useState } from "react";
import { useTheme } from "@emotion/react";
import { useNavigate } from "react-router-dom";
import { createToast } from "../../Utils/toastUtils";
import { createToast } from "../../../Utils/toastUtils.jsx";
import PropTypes from "prop-types";
import { usePauseMonitor, useDeleteMonitor } from "../../Hooks/monitorHooks";
import { usePauseMonitor, useDeleteMonitor } from "../../../Hooks/v1/monitorHooks.js";
const ActionsMenu = ({
monitor,
@@ -1,6 +1,6 @@
import LeftArrow from "../../assets/icons/left-arrow.svg?react";
import LeftArrowDouble from "../../assets/icons/left-arrow-double.svg?react";
import LeftArrowLong from "../../assets/icons/left-arrow-long.svg?react";
import LeftArrow from "../../../assets/icons/left-arrow.svg?react";
import LeftArrowDouble from "../../../assets/icons/left-arrow-double.svg?react";
import LeftArrowLong from "../../../assets/icons/left-arrow-long.svg?react";
import PropTypes from "prop-types";
const ArrowLeft = ({ type, color = "#667085", ...props }) => {
@@ -1,5 +1,5 @@
import RightArrow from "../../assets/icons/right-arrow.svg?react";
import RightArrowDouble from "../../assets/icons/right-arrow-double.svg?react";
import RightArrow from "../../../assets/icons/right-arrow.svg?react";
import RightArrowDouble from "../../../assets/icons/right-arrow-double.svg?react";
import PropTypes from "prop-types";
const ArrowRight = ({ type, color = "#667085", ...props }) => {
@@ -2,7 +2,7 @@ import PropTypes from "prop-types";
import { Box, Breadcrumbs as MUIBreadcrumbs } from "@mui/material";
import { useTheme } from "@emotion/react";
import { useNavigate } from "react-router-dom";
import ArrowRight from "../ArrowRight";
import ArrowRight from "../ArrowRight/index.jsx";
import "./index.css";
/**
@@ -61,7 +61,7 @@ import {
Tooltip,
ResponsiveContainer,
} from "recharts";
import { createGradient } from "../Utils/gradientUtils";
import { createGradient } from "../Utils/gradientUtils.jsx";
import PropTypes from "prop-types";
import { useTheme } from "@mui/material";
import { useId } from "react";
@@ -1,6 +1,6 @@
import { useTheme } from "@emotion/react";
import { Box, Stack, Tooltip, Typography } from "@mui/material";
import { formatDateWithTz } from "../../../Utils/timeUtils";
import { formatDateWithTz } from "../../../../Utils/timeUtils.js";
import { useEffect, useState } from "react";
import "./index.css";
import { useSelector } from "react-redux";
@@ -2,7 +2,7 @@
import { Typography, Stack } from "@mui/material";
import PropTypes from "prop-types";
import { useTheme } from "@emotion/react";
import IconBox from "../../IconBox";
import IconBox from "../../IconBox/index.jsx";
/**
* `EmptyView` is a functional React component that displays an empty state view with an optional icon, header, and message.
@@ -1,7 +1,7 @@
import { Stack, Typography } from "@mui/material";
import { useTheme } from "@emotion/react";
import IconBox from "../../IconBox";
import EmptyView from "./EmptyView";
import IconBox from "../../IconBox/index.jsx";
import EmptyView from "./EmptyView.jsx";
import PropTypes from "prop-types";
const ChartBox = ({
@@ -5,7 +5,7 @@ import { Stack, Box, Tooltip, Typography } from "@mui/material";
import { useTheme } from "@emotion/react";
import { useState, useEffect } from "react";
import PropTypes from "prop-types";
import { formatDateWithTz } from "../../../Utils/timeUtils";
import { formatDateWithTz } from "../../../../Utils/timeUtils.js";
import { useSelector } from "react-redux";
const PlaceholderCheck = ({ daysToShow }) => {
@@ -1,6 +1,6 @@
import { Stack, Typography } from "@mui/material";
import { useTheme } from "@emotion/react";
import IconBox from "../../IconBox";
import IconBox from "../../IconBox/index.jsx";
import PropTypes from "prop-types";
const LegendBox = ({ children, icon, header, sx }) => {
@@ -12,11 +12,11 @@ import { Box, Stack, Typography } from "@mui/material";
import { useTheme } from "@emotion/react";
import { useMemo, useState } from "react";
import { useSelector } from "react-redux";
import { formatDateWithTz } from "../../../Utils/timeUtils";
import { formatDateWithTz } from "../../../../Utils/timeUtils.js";
import {
tooltipDateFormatLookup,
tickDateFormatLookup,
} from "../Utils/chartUtilFunctions";
} from "../Utils/chartUtilFunctions.js";
import "./index.css";
const CustomToolTip = ({ active, payload, label, dateRange }) => {
@@ -1,6 +1,6 @@
import { useTheme } from "@emotion/react";
import { Box, Stack, Tooltip, Typography } from "@mui/material";
import { formatDateWithTz } from "../../../Utils/timeUtils";
import { formatDateWithTz } from "../../../../Utils/timeUtils.js";
import { useEffect, useState, forwardRef } from "react";
import { useSelector } from "react-redux";
import PropTypes from "prop-types";
@@ -2,9 +2,9 @@ import PropTypes from "prop-types";
import { useSelector } from "react-redux";
import { useTheme } from "@mui/material";
import { Text } from "recharts";
import { formatDateWithTz } from "../../../Utils/timeUtils";
import { formatDateWithTz } from "../../../../Utils/timeUtils.js";
import { Box, Stack, Typography } from "@mui/material";
import { tickDateFormatLookup, tooltipDateFormatLookup } from "./chartUtilFunctions";
import { tickDateFormatLookup, tooltipDateFormatLookup } from "./chartUtilFunctions.js";
/**
* Custom tick component for rendering time with timezone.
*
@@ -1,7 +1,7 @@
import "./check.css";
import PropTypes from "prop-types";
import CheckGrey from "../../assets/icons/check.svg?react";
import CheckOutlined from "../../assets/icons/check-outlined.svg?react";
import CheckGrey from "../../../assets/icons/check.svg?react";
import CheckOutlined from "../../../assets/icons/check-outlined.svg?react";
import { Box, Stack, Typography } from "@mui/material";
import { useTheme } from "@emotion/react";
@@ -10,7 +10,7 @@ import MenuItem from "@mui/material/MenuItem";
import Drawer from "@mui/material/Drawer";
import MenuIcon from "@mui/icons-material/Menu";
import CloseRoundedIcon from "@mui/icons-material/CloseRounded";
import ThemeSwitch from "../ThemeSwitch";
import ThemeSwitch from "../ThemeSwitch/index.jsx";
import { useTheme } from "@mui/material/styles";
import { useSelector } from "react-redux";
import { useLocation, useNavigate } from "react-router-dom";
@@ -1,7 +1,7 @@
import { Box, Stack, Typography } from "@mui/material";
import PropTypes from "prop-types";
import { useTheme } from "@emotion/react";
import ConfigBox from "../ConfigBox";
import ConfigBox from "../ConfigBox/index.jsx";
/**
* ConfigRow is a styled container used to layout content in a row format with specific padding, border, and spacing.
@@ -1,6 +1,6 @@
import PropTypes from "prop-types";
import { Button, Stack } from "@mui/material";
import { GenericDialog } from "./genericDialog";
import { GenericDialog } from "./genericDialog.jsx";
import { useTheme } from "@emotion/react";
import { useTranslation } from "react-i18next";
File renamed without changes.
@@ -1,8 +1,8 @@
import { useTheme } from "@emotion/react";
import Box from "@mui/material/Box";
import Background from "../../assets/Images/background-grid.svg?react";
import OutputAnimation from "../../assets/Animations/output.gif";
import DarkmodeOutput from "../../assets/Animations/darkmodeOutput.gif";
import Background from "../../../assets/Images/background-grid.svg?react";
import OutputAnimation from "../../../assets/Animations/output.gif";
import DarkmodeOutput from "../../../assets/Animations/darkmodeOutput.gif";
import { useSelector } from "react-redux";
const FallbackBackground = () => {
const theme = useTheme();
@@ -2,7 +2,7 @@ import PropTypes from "prop-types";
import { useTheme } from "@mui/material/styles";
import Box from "@mui/material/Box";
import Stack from "@mui/material/Stack";
import Check from "../Check/Check";
import Check from "../Check/Check.jsx";
const FallbackCheckList = ({ checks, type }) => {
const theme = useTheme();
return (
@@ -3,7 +3,7 @@ import { useTheme } from "@mui/material/styles";
import Link from "@mui/material/Link";
import { Link as RouterLink } from "react-router-dom";
import { useTranslation } from "react-i18next";
import Alert from "../Alert";
import Alert from "../Alert/index.jsx";
import PropTypes from "prop-types";
const renderWarningMessage = (t) => {
@@ -2,11 +2,11 @@ import PropTypes from "prop-types";
import { useTheme } from "@emotion/react";
import { Box, Stack } from "@mui/material";
import "./index.css";
import FallbackTitle from "./FallbackTitle";
import FallbackCheckList from "./FallbackCheckList";
import FallbackActionButtons from "./FallBackActionButtons";
import FallbackBackground from "./FallbackBackground";
import FallbackContainer from "./FallbackContainer";
import FallbackTitle from "./FallbackTitle.jsx";
import FallbackCheckList from "./FallbackCheckList.jsx";
import FallbackActionButtons from "./FallBackActionButtons.jsx";
import FallbackBackground from "./FallbackBackground.jsx";
import FallbackContainer from "./FallbackContainer.jsx";
/**
* Fallback component to display a fallback UI with a title, a list of checks, and a navigation button.
*
@@ -1,8 +1,8 @@
import { useTheme } from "@emotion/react";
import { Box, Stack } from "@mui/material";
import OutputAnimation from "../../assets/Animations/output.gif";
import DarkmodeOutput from "../../assets/Animations/darkmodeOutput.gif";
import Background from "../../assets/Images/background-grid.svg?react";
import OutputAnimation from "../../../assets/Animations/output.gif";
import DarkmodeOutput from "../../../assets/Animations/darkmodeOutput.gif";
import Background from "../../../assets/Images/background-grid.svg?react";
import { useSelector } from "react-redux";
/**
@@ -1,8 +1,8 @@
import { useEffect, useState } from "react";
import { useNavigate } from "react-router-dom";
import { logger } from "../../Utils/Logger";
import { networkService } from "../../main";
import { logger } from "../../../Utils/Logger.js";
import { networkService } from "../../../main.jsx";
const withAdminCheck = (WrappedComponent) => {
const WithAdminCheck = (props) => {
@@ -1,7 +1,7 @@
import { Stack, Typography } from "@mui/material";
import PropTypes from "prop-types";
import { useTheme } from "@emotion/react";
import Dot from "../Dot";
import Dot from "../Dot/index.jsx";
/**
* Host component.
* This subcomponent receives a params object and displays the host details.
@@ -1,6 +1,6 @@
import PropTypes from "prop-types";
import { useTheme } from "@mui/material";
import { BaseLabel } from "../Label";
import { BaseLabel } from "../Label/index.jsx";
/**
* @component
@@ -1,4 +1,4 @@
import i18n from "../../Utils/i18n";
import i18n from "../../../Utils/i18n.js";
import { useSelector } from "react-redux";
import { useEffect } from "react";
const I18nLoader = () => {
@@ -1,6 +1,6 @@
import { RowContainer } from "../StandardContainer";
import { RowContainer } from "../StandardContainer/index.jsx";
import { Stack, Typography } from "@mui/material";
import Image from "../Image";
import Image from "../Image/index.jsx";
import { useTheme } from "@mui/material/styles";
@@ -1,9 +1,8 @@
import PropTypes from "prop-types";
import { FormControlLabel, Checkbox as MuiCheckbox } from "@mui/material";
import { useTheme } from "@emotion/react";
import CheckboxOutline from "../../../assets/icons/checkbox-outline.svg?react";
import CheckboxFilled from "../../../assets/icons/checkbox-filled.svg?react";
import "./index.css";
import CheckboxOutline from "../../../../assets/icons/checkbox-outline.svg?react";
import CheckboxFilled from "../../../../assets/icons/checkbox-filled.svg?react";
/**
* Checkbox Component
@@ -1,10 +1,10 @@
// Components
import { Box, Stack, Typography } from "@mui/material";
import CloudUploadIcon from "@mui/icons-material/CloudUpload";
import Image from "../../../Components/Image";
import Image from "../../Image/index.jsx";
import TextField from "@mui/material/TextField";
import IconButton from "@mui/material/IconButton";
import ProgressUpload from "../../ProgressBars";
import ProgressUpload from "../../ProgressBars/index.jsx";
import ImageIcon from "@mui/icons-material/Image";
// Utils
@@ -1,7 +1,7 @@
import PropTypes from "prop-types";
import { FormControlLabel, Radio as MUIRadio, Typography } from "@mui/material";
import { useTheme } from "@emotion/react";
import RadioChecked from "../../../assets/icons/radio-checked.svg?react";
import RadioChecked from "../../../../assets/icons/radio-checked.svg?react";
import "./index.css";
/**
@@ -8,10 +8,10 @@ import {
Checkbox,
} from "@mui/material";
import { useTheme } from "@emotion/react";
import SearchIcon from "../../../assets/icons/search.svg?react";
import SearchIcon from "../../../../assets/icons/search.svg?react";
import React, { useEffect } from "react";
import { useTranslation } from "react-i18next";
import FieldWrapper from "../FieldWrapper";
import FieldWrapper from "../FieldWrapper/index.jsx";
/**
* Search component using Material UI's Autocomplete.
@@ -2,7 +2,7 @@ import PropTypes from "prop-types";
import { useTheme } from "@emotion/react";
import { MenuItem, Select as MuiSelect, Stack, Typography } from "@mui/material";
import KeyboardArrowDownIcon from "@mui/icons-material/KeyboardArrowDown";
import FieldWrapper from "../FieldWrapper";
import FieldWrapper from "../FieldWrapper/index.jsx";
import "./index.css";
@@ -4,7 +4,7 @@ import PropTypes from "prop-types";
import VisibilityOff from "@mui/icons-material/VisibilityOff";
import Visibility from "@mui/icons-material/Visibility";
import ReorderRoundedIcon from "@mui/icons-material/ReorderRounded";
import DeleteIcon from "../../../../assets/icons/trash-bin.svg?react";
import DeleteIcon from "../../../../../assets/icons/trash-bin.svg?react";
export const HttpAdornment = ({ https }) => {
const theme = useTheme();
@@ -2,7 +2,7 @@ import { Stack, TextField, Typography } from "@mui/material";
import { useTheme } from "@emotion/react";
import { forwardRef, useState, cloneElement } from "react";
import PropTypes from "prop-types";
import FieldWrapper from "../FieldWrapper";
import FieldWrapper from "../FieldWrapper/index.jsx";
const getSx = (theme, type, maxWidth) => {
const sx = {
@@ -1,7 +1,7 @@
import Box from "@mui/material/Box";
import PropTypes from "prop-types";
import { useTheme } from "@emotion/react";
import BackgroundSVG from "../../../assets/Images/background.svg";
import BackgroundSVG from "../../../../assets/Images/background.svg";
import { useSelector } from "react-redux";
const AppLayout = ({ children }) => {
@@ -1,4 +1,4 @@
import Sidebar from "../../Sidebar";
import Sidebar from "../../Sidebar/index.jsx";
import { Outlet } from "react-router";
import { Stack } from "@mui/material";
File renamed without changes.
File renamed without changes.
Loaded 100 of 603 files, more files were not shown because too many files have changed in this diff. Show more