@@ -9,6 +9,7 @@ import { formatErrorMessage } from './hooks/hookUtils'
99import { createApolloClient } from './routing/ApolloClientConfig'
1010import { getChangesUrl } from "./hooks/hookUtils"
1111import { cleanGraphiqlCache } from "./pages/utils"
12+ import { getStoreChangeRequestDBStatus , storeChangeRequestDBStatus } from "./hooks/utils"
1213
1314export const WOQLContext = React . createContext ( )
1415export const WOQLClientObj = ( ) => useContext ( WOQLContext )
@@ -34,10 +35,13 @@ export const WOQLClientProvider = ({children, params}) => {
3435 const [ chosenCommit , setChosenCommit ] = useState ( { } )
3536 const [ currentCRObject , setCurrentCRObject ] = useState ( false )
3637 const [ userHasMergeRole , setTeamUserRoleMerge ] = useState ( false )
38+
3739 const [ currentChangeRequest , setCurrentChangeRequest ] = useState ( false )
3840 const [ currentCRName , setCurrentCRName ] = useState ( false )
3941 const [ currentCRStartBranch , setCurrentCRStartBranch ] = useState ( false )
4042
43+ const [ useChangeRequest , setUseChangeRequest ] = useState ( true )
44+
4145 // constants to control sidebar collapse
4246 const [ collapseSideBar , setCollapseSideBar ] = useState ( localStorage . getItem ( `Terminusdb-SideBar-Collapsed` ) === "true" ? true : false )
4347
@@ -150,33 +154,42 @@ export const WOQLClientProvider = ({children, params}) => {
150154 setHead ( 'main' , { commit :false , time :false } )
151155
152156 if ( dbName ) {
157+ // getStoreChangeRequestDBStatus(client.organization(),dbName,setUseChangeRequest)
153158 //clear graphiql interface local storage
154159 cleanGraphiqlCache ( )
160+
161+ const changeRequestStatus = await client . sendCustomRequest ( "GET" , `${ getChangesUrl ( client ) } /profile/status` )
162+ setUseChangeRequest ( changeRequestStatus . isActive )
163+ if ( changeRequestStatus . isActive ) {
155164 // check if there is a change request related
156- const { TERMINUSCMS_CR , TERMINUSCMS_CR_ID } = changeRequestName ( client )
165+ const { TERMINUSCMS_CR , TERMINUSCMS_CR_ID } = changeRequestName ( client )
157166
158- const lastBranch = localStorage . getItem ( TERMINUSCMS_CR )
159- const lastChangeRequest = localStorage . getItem ( TERMINUSCMS_CR_ID )
167+ const lastBranch = localStorage . getItem ( TERMINUSCMS_CR )
168+ const lastChangeRequest = localStorage . getItem ( TERMINUSCMS_CR_ID )
160169
161- if ( lastBranch && lastChangeRequest ) {
162- //check the changeRequest Status
163- const changeObj = await client . sendCustomRequest ( "GET" , `${ getChangesUrl ( client ) } /${ lastChangeRequest } ` )
164- if ( changeObj . status === "Open" ) {
165- client . checkout ( lastBranch )
166- setBranch ( lastBranch )
167- setCurrentChangeRequest ( lastChangeRequest )
168- setCurrentCRStartBranch ( changeObj . original_branch )
169- setCurrentCRName ( changeObj . name || changeObj . messages [ 0 ] . text )
170+ if ( lastBranch && lastChangeRequest ) {
171+ //check the changeRequest Status
172+ const changeObj = await client . sendCustomRequest ( "GET" , `${ getChangesUrl ( client ) } /${ lastChangeRequest } ` )
173+ if ( changeObj . status === "Open" ) {
174+ client . checkout ( lastBranch )
175+ setBranch ( lastBranch )
176+ setCurrentChangeRequest ( lastChangeRequest )
177+ setCurrentCRStartBranch ( changeObj . original_branch )
178+ setCurrentCRName ( changeObj . name || changeObj . messages [ 0 ] . text )
179+ } else {
180+ localStorage . removeItem ( TERMINUSCMS_CR )
181+ localStorage . removeItem ( TERMINUSCMS_CR_ID )
182+ setBranch ( "main" )
183+ setCurrentChangeRequest ( false )
184+ setCurrentCRName ( false )
185+ setCurrentCRStartBranch ( false )
186+ }
170187 } else {
171- localStorage . removeItem ( TERMINUSCMS_CR )
172- localStorage . removeItem ( TERMINUSCMS_CR_ID )
188+ //if we are not change request
173189 setBranch ( "main" )
174190 setCurrentChangeRequest ( false )
175- setCurrentCRName ( false )
176- setCurrentCRStartBranch ( false )
177191 }
178192 } else {
179- //if we are not change request
180193 setBranch ( "main" )
181194 setCurrentChangeRequest ( false )
182195 }
@@ -297,11 +310,21 @@ export const WOQLClientProvider = ({children, params}) => {
297310 sidebarStateObj [ name ] = value
298311 }
299312
313+ const updateChangeRequestStatus = async function ( status ) {
314+ const isActive = status === "Inactive" ? false : true
315+ await woqlClient . sendCustomRequest ( "PUT" , `${ getChangesUrl ( woqlClient ) } /profile/status` , { isActive :isActive } )
316+ setUseChangeRequest ( isActive )
317+ if ( status === "Inactive" ) {
318+ exitChangeRequestBranch ( currentCRStartBranch )
319+ }
320+ }
300321
301322 return (
302323 < WOQLContext . Provider
303324 value = { {
325+ updateChangeRequestStatus,
304326 currentCRName,
327+ useChangeRequest,
305328 exitChangeRequestBranch,
306329 apolloClient,
307330 setChangeRequestBranch,
0 commit comments