Skip to content

Commit

Permalink
fix: Commented ServerStatus
Browse files Browse the repository at this point in the history
  • Loading branch information
builtbysuraj committed Mar 10, 2024
1 parent 19366c7 commit b44d879
Show file tree
Hide file tree
Showing 4 changed files with 76 additions and 76 deletions.
94 changes: 47 additions & 47 deletions client/src/context/ServerStatusProvider.tsx
Original file line number Diff line number Diff line change
@@ -1,47 +1,47 @@
import axios from 'axios'
import { PropsWithChildren, createContext, useEffect, useState } from 'react'

import { ENV } from '@/conf'

type ServerStateType = {
status: boolean
message: string
}

export const ServerStatusContext = createContext<ServerStateType | null>(null)

export default function ServerStatusProvider({ children }: PropsWithChildren) {
const [serverStatus, setServerStatus] = useState<ServerStateType>({
status: false,
message: '',
})

useEffect(() => {
const checkServerStatus = async () => {
try {
const { data } = await axios.get(`${ENV.SERVER_URL}/status`)

if (data.status) {
setServerStatus(data)
} else {
setServerStatus({ status: false, message: 'Server is not running' })
}
} catch (error) {
setServerStatus({ status: false, message: 'Wait for server to start' })
}
}

checkServerStatus()

const intervalId = setInterval(checkServerStatus, 10000)

// Clear interval on component unmount
return () => clearInterval(intervalId)
}, [])

return (
<ServerStatusContext.Provider value={serverStatus}>
{children}
</ServerStatusContext.Provider>
)
}
// import axios from 'axios'
// import { PropsWithChildren, createContext, useEffect, useState } from 'react'

// import { ENV } from '@/conf'

// type ServerStateType = {
// status: boolean
// message: string
// }

// export const ServerStatusContext = createContext<ServerStateType | null>(null)

// export default function ServerStatusProvider({ children }: PropsWithChildren) {
// const [serverStatus, setServerStatus] = useState<ServerStateType>({
// status: false,
// message: '',
// })

// useEffect(() => {
// const checkServerStatus = async () => {
// try {
// const { data } = await axios.get(`${ENV.SERVER_URL}/status`)

// if (data.status) {
// setServerStatus(data)
// } else {
// setServerStatus({ status: false, message: 'Server is not running' })
// }
// } catch (error) {
// setServerStatus({ status: false, message: 'Wait for server to start' })
// }
// }

// checkServerStatus()

// const intervalId = setInterval(checkServerStatus, 10000)

// // Clear interval on component unmount
// return () => clearInterval(intervalId)
// }, [])

// return (
// <ServerStatusContext.Provider value={serverStatus}>
// {children}
// </ServerStatusContext.Provider>
// )
// }
22 changes: 11 additions & 11 deletions client/src/hooks/useServerStatus.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { ServerStatusContext } from '@/context/ServerStatusProvider'
import { useContext } from 'react'
// import { ServerStatusContext } from '@/context/ServerStatusProvider'
// import { useContext } from 'react'

export default function useServerStatus() {
const context = useContext(ServerStatusContext)
if (context === undefined) {
throw new Error(
'useServerStatus must be used within an ServerStatusProvider'
)
}
return context
}
// export default function useServerStatus() {
// const context = useContext(ServerStatusContext)
// if (context === undefined) {
// throw new Error(
// 'useServerStatus must be used within an ServerStatusProvider'
// )
// }
// return context
// }
10 changes: 5 additions & 5 deletions client/src/main.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import router from './routes'
import store from './state/store'

// Context
import ServerStatusProvider from './context/ServerStatusProvider'
// import ServerStatusProvider from './context/ServerStatusProvider'

if (process.env.NODE_ENV === 'production') {
console.log = () => {}
Expand All @@ -25,9 +25,9 @@ if (process.env.NODE_ENV === 'production') {

createRoot(document.querySelector('#root')!).render(
<Provider store={store}>
<ServerStatusProvider>
<Toaster />
<RouterProvider router={router} />
</ServerStatusProvider>
{/* <ServerStatusProvider> */}
<Toaster />
<RouterProvider router={router} />
{/* </ServerStatusProvider> */}
</Provider>
)
26 changes: 13 additions & 13 deletions client/src/pages/cart/components/place-order/PlaceOrder.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import axios from 'axios'

import useServerStatus from '@/hooks/useServerStatus'
// import useServerStatus from '@/hooks/useServerStatus'
import { ENV } from '@/conf'
import { useAppSelector } from '@/state/store'
import { totalCartPrice } from '@/utils'
import toast from 'react-hot-toast'
import styles from './PlaceOrder.module.css'
import { ENV } from '@/conf'

declare global {
interface Window {
Expand All @@ -18,7 +18,7 @@ axios.defaults.withCredentials = true

export default function PlaceOrder() {
const cartData = useAppSelector((state) => state.cart)
const serverStatus = useServerStatus()
// const serverStatus = useServerStatus()

const amount = totalCartPrice(cartData)

Expand Down Expand Up @@ -53,16 +53,16 @@ export default function PlaceOrder() {
}

const handleCheckout = async () => {
if (!serverStatus?.status) {
// @ts-expect-error ...
return toast.error(serverStatus?.message)
}
if (serverStatus?.status)
toast.promise(performCheckout(), {
loading: 'Processing...',
success: 'Done!',
error: 'Server is not running',
})
// if (!serverStatus?.status) {
// // @ts-expect-error ...
// return toast.error(serverStatus?.message)
// }
// if (serverStatus?.status)
toast.promise(performCheckout(), {
loading: 'Processing...',
success: 'Done!',
error: 'Server is not running',
})
}

return (
Expand Down

0 comments on commit b44d879

Please sign in to comment.