Skip to content

Commit

Permalink
🚧 Installations Context
Browse files Browse the repository at this point in the history
Co-authored-by: javikalsan <jcalzadosanchez@gmail.com>
  • Loading branch information
2 people authored and vokimon committed Dec 22, 2023
1 parent b44139c commit 496fdd7
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 10 deletions.
7 changes: 6 additions & 1 deletion frontend/src/App.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import InstallationsPage from './pages/InstallationsPage'
import DetailInstallationPage from './pages/DetailInstallationPage'
import InvoicesPage from './pages/InvoicesPage'
import ProductionPage from './pages/ProductionPage'
import InstallationProvider from './components/InstallationProvider'

const routes = [
{
Expand Down Expand Up @@ -77,7 +78,11 @@ const routes = [
},
{
path: '/installation/:contract_number',
element: <DetailInstallationPage />,
element: (
<InstallationProvider>
<DetailInstallationPage />
</InstallationProvider>
),
},
{
path: '/invoices',
Expand Down
56 changes: 56 additions & 0 deletions frontend/src/components/InstallationProvider.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
import React from 'react'
import { useAuth } from './AuthProvider'
import ovapi from '../services/ovapi'

const InstallationContext = React.createContext()

export default function InstallationProvider({ children }) {
// const [installations, setInstallations] = React.useState([])
const { currentUser } = useAuth()

//const closeDialog = () => {
// setDialogs((dialogs) => {
// const latestDialog = dialogs.pop()
// if (!latestDialog) return dialogs
// if (latestDialog.onClose) latestDialog.onClose()
// return [...dialogs].concat({ ...latestDialog, open: false })
// })
//}


// const reloadUser = () => {
// ov.currentUser().then((user) => setCurrentUser(user))
// }

const getInstallations = () => {
return ovapi.installations(currentUser)
.then((data) => {
// setInstallations(data);
// setLoading(false);
console.log(data);
return data;
})
.catch((error) => {
console.error(error);
// setLoading(false);
// throw error;
});
};


// const getInstallations = () => {
// return [1,2,3]// Use the data here or perform additional actions
// };



const contextValue = getInstallations()

return (
<InstallationContext.Provider value={contextValue}>
{children}
</InstallationContext.Provider>
)
}

export const useInstallationContext = () => React.useContext(InstallationContext)
19 changes: 10 additions & 9 deletions frontend/src/pages/DetailInstallationPage/index.jsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'
import React, { useEffect, useState, useContext } from 'react'
import { useParams } from 'react-router-dom'
import { useTranslation } from 'react-i18next'
import Container from '@mui/material/Container'
Expand All @@ -12,14 +12,18 @@ import ErrorSplash from '../../components/ErrorSplash'
import NavigationButtons from '../../components/NavigationButtons'
import { contractFields } from './detailInstallationData'
import { installationFields } from './detailInstallationData'
import transformContractDetails from './detailInstallationData'
import transformContractDetails from './detailInstallationData'
import { useInstallationContext } from '../../components/InstallationProvider'

export default function DetailInstallationPage(params) {
const { contract_number } = useParams()
const { t } = useTranslation()
const [installationDetail, setInstallationDetail] = useState(undefined)
const [contractDetail, setContractDetail] = useState(undefined)
const [error, setError] = useState(false)
const data = useInstallationContext()

console.log(data)

useEffect(() => {
getDetailInstallation()
Expand All @@ -29,11 +33,9 @@ export default function DetailInstallationPage(params) {
setError(false)
setInstallationDetail(undefined)
setContractDetail(undefined)
var result
try {
result = await ovapi.installationDetails(contract_number)
} catch (e) {
setError(e)
const result = await ovapi.installationDetails(contract_number)
if (!result) {
setError(true)
return
}
setInstallationDetail(result?.installation_details)
Expand All @@ -50,8 +52,7 @@ export default function DetailInstallationPage(params) {
</PageTitle>
{error ? (
<ErrorSplash
title={t('INSTALLATION_DETAIL.ERROR_LOADING_DATA')}
message={error.error}
message={t('INSTALLATION_DETAIL.ERROR_LOADING_DATA')}
backlink="/installation"
backtext={t('INSTALLATION_DETAIL.BACK_TO_INSTALLATIONS')}
/>
Expand Down

0 comments on commit 496fdd7

Please sign in to comment.