diff --git a/.github/workflows/distribution-deploy.yml b/.github/workflows/distribution-deploy.yml index 69f3afd73..d4bcfc8b7 100644 --- a/.github/workflows/distribution-deploy.yml +++ b/.github/workflows/distribution-deploy.yml @@ -11,9 +11,6 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Log in to GitHub Container Registry uses: docker/login-action@v3 with: diff --git a/.github/workflows/distribution-mono-deploy.yml b/.github/workflows/distribution-mono-deploy.yml new file mode 100644 index 000000000..7dafbfc21 --- /dev/null +++ b/.github/workflows/distribution-mono-deploy.yml @@ -0,0 +1,30 @@ +name: Distribution deploy - Monolithic + +on: + push: + branches: ["master"] + workflow_dispatch: +jobs: + docker-build-and-push-server: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build Server Docker image + run: | + docker build \ + -t ghcr.io/bluewave-labs/checkmate:backend-dist-mono \ + -f ./docker/dist-mono/server.Dockerfile \ + --label org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate \ + . + + - name: Push Server Docker image + run: docker push ghcr.io/bluewave-labs/checkmate:backend-dist-mono diff --git a/client/package-lock.json b/client/package-lock.json index b7859e0fe..71b7c6efe 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -52,7 +52,7 @@ "eslint-plugin-react-hooks": "^5.0.0", "eslint-plugin-react-refresh": "^0.4.6", "prettier": "^3.3.3", - "vite": "^5.2.0" + "vite": "^5.4.19" } }, "node_modules/@ampproject/remapping": { @@ -6544,9 +6544,9 @@ } }, "node_modules/vite": { - "version": "5.4.18", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.18.tgz", - "integrity": "sha512-1oDcnEp3lVyHCuQ2YFelM4Alm2o91xNoMncRm1U7S+JdYfYOvbiGZ3/CxGttrOu2M/KcGz7cRC2DoNUA6urmMA==", + "version": "5.4.19", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz", + "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==", "license": "MIT", "dependencies": { "esbuild": "^0.21.3", diff --git a/client/package.json b/client/package.json index ba745503a..f8f699be0 100644 --- a/client/package.json +++ b/client/package.json @@ -63,6 +63,6 @@ "eslint-plugin-react-hooks": "^5.0.0", "eslint-plugin-react-refresh": "^0.4.6", "prettier": "^3.3.3", - "vite": "^5.2.0" + "vite": "^5.4.19" } } diff --git a/client/src/Components/MonitorDetailsControlHeader/index.jsx b/client/src/Components/MonitorDetailsControlHeader/index.jsx index c4dcf1ffc..920d5a29c 100644 --- a/client/src/Components/MonitorDetailsControlHeader/index.jsx +++ b/client/src/Components/MonitorDetailsControlHeader/index.jsx @@ -5,12 +5,15 @@ import Button from "@mui/material/Button"; import SettingsOutlinedIcon from "@mui/icons-material/SettingsOutlined"; import PauseOutlinedIcon from "@mui/icons-material/PauseOutlined"; import PlayArrowOutlinedIcon from "@mui/icons-material/PlayArrowOutlined"; +import EmailIcon from "@mui/icons-material/Email"; // Utils import PropTypes from "prop-types"; import { useNavigate } from "react-router-dom"; import { useTheme } from "@mui/material/styles"; import { usePauseMonitor } from "../../Hooks/useMonitorControls"; +import { useSendTestEmail } from "../../Hooks/useSendTestEmail"; +import { useTranslation } from "react-i18next"; /** * MonitorDetailsControlHeader component displays the control header for monitor details. @@ -34,11 +37,14 @@ const MonitorDetailsControlHeader = ({ }) => { const navigate = useNavigate(); const theme = useTheme(); + const { t } = useTranslation(); const [pauseMonitor, isPausing, error] = usePauseMonitor({ monitorId: monitor?._id, triggerUpdate, }); + const [isSending, emailError, sendTestEmail] = useSendTestEmail(); + if (isLoading) { return ; } @@ -54,6 +60,24 @@ const MonitorDetailsControlHeader = ({ direction="row" gap={theme.spacing(2)} > + +