{"version":3,"file":"js/rescript-bundles-dashboard-edit-product-general-tab-ec94e23708cb40b8d908.chunk.js","mappings":"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","sources":["webpack://datacenters/./client/app/rescript/bundles/dashboard-edit-product/general-tab/DashboardEditProductGeneralTab.res.js","webpack://datacenters/./client/app/rescript/bundles/dashboard-edit-product/general-tab/index.js"],"sourcesContent":["// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Api from \"../../../api/Api.res.js\";\nimport * as Url from \"../../../utils/Url.res.js\";\nimport * as Hooks from \"../../../libs/Hooks.res.js\";\nimport * as React from \"react\";\nimport * as Button from \"../../../styleguide/components/Button/Button.res.js\";\nimport * as $$Promise from \"../../../bindings/Promise.res.js\";\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport * as Belt_Option from \"rescript/lib/es6/belt_Option.js\";\nimport * as SentryLogger from \"../../../loggers/SentryLogger.res.js\";\nimport * as Routes_Product from \"../../../routes/common/Routes_Product.res.js\";\nimport * as ProductCategory from \"../../../models/ProductCategory.res.js\";\nimport * as ProviderAsFilter from \"../../../models/ProviderAsFilter.res.js\";\nimport * as ColocationProduct from \"../../../models/ColocationProduct.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as DashboardProductEditorHeader from \"../../common/dashboard/DashboardProductEditorHeader.res.js\";\nimport * as DashboardProductEditorLayout from \"../../common/dashboard/DashboardProductEditorLayout.res.js\";\nimport * as DashboardProductFeatureEditor from \"../../common/dashboard/DashboardProductFeatureEditor.res.js\";\nimport * as DashboardProductEditorActionBar from \"../../common/dashboard/DashboardProductEditorActionBar.res.js\";\nimport * as DashboardProductEditorGeneralTab from \"../../common/dashboard/DashboardProductEditorGeneralTab.res.js\";\nimport * as DashboardProductEditorContextMenu from \"../../common/dashboard/DashboardProductEditorContextMenu.res.js\";\nimport * as DashboardProductEditorUnarchiveLink from \"../../common/dashboard/DashboardProductEditorUnarchiveLink.res.js\";\nimport * as DashboardProductEditorGeneralTabData from \"../../common/dashboard/DashboardProductEditorGeneralTabData.res.js\";\nimport * as DashboardProductEditorActiveStatusToggle from \"../../common/dashboard/DashboardProductEditorActiveStatusToggle.res.js\";\n\nfunction DashboardEditProductGeneralTab$DashboardEditProductGeneralTab(props) {\n  var product = props.product;\n  var initialState = React.useMemo((function () {\n          return {\n                  product: product,\n                  status: \"Editing\",\n                  input: DashboardProductEditorGeneralTabData.Input.fromProductDraft(product),\n                  results: undefined,\n                  submissionError: false\n                };\n        }), []);\n  var match = Hooks.useReducer(initialState, (function (state, action) {\n          if (typeof action !== \"object\") {\n            switch (action) {\n              case \"AddFeature\" :\n                  var match = state.status;\n                  if (match !== \"Editing\") {\n                    return \"NoUpdate\";\n                  }\n                  if (state.input.features.length >= ColocationProduct.maxFeatures) {\n                    return \"NoUpdate\";\n                  }\n                  var init = state.input;\n                  return {\n                          TAG: \"Update\",\n                          _0: {\n                            product: state.product,\n                            status: state.status,\n                            input: {\n                              name: init.name,\n                              description: init.description,\n                              providerId: init.providerId,\n                              category: init.category,\n                              subcategory: init.subcategory,\n                              startDate: init.startDate,\n                              endDate: init.endDate,\n                              isExclusiveOffer: init.isExclusiveOffer,\n                              pricePerMonth: init.pricePerMonth,\n                              setupFee: init.setupFee,\n                              term: init.term,\n                              powerCircuit: init.powerCircuit,\n                              bandwidth: init.bandwidth,\n                              ipAllocation: init.ipAllocation,\n                              totalPowerKw: init.totalPowerKw,\n                              features: Belt_Array.concat(state.input.features, [DashboardProductFeatureEditor.Input.empty])\n                            },\n                            results: state.results,\n                            submissionError: state.submissionError\n                          }\n                        };\n              case \"Validate\" :\n                  return {\n                          TAG: \"Update\",\n                          _0: {\n                            product: state.product,\n                            status: state.status,\n                            input: state.input,\n                            results: DashboardProductEditorGeneralTabData.Validate.all(state.input),\n                            submissionError: state.submissionError\n                          }\n                        };\n              case \"Submit\" :\n                  var match$1 = state.status;\n                  if (match$1 === \"Editing\") {\n                    return {\n                            TAG: \"UpdateWithSideEffects\",\n                            _0: {\n                              product: state.product,\n                              status: state.status,\n                              input: state.input,\n                              results: DashboardProductEditorGeneralTabData.Validate.all(state.input),\n                              submissionError: state.submissionError\n                            },\n                            _1: (function (param) {\n                                if (DashboardProductEditorGeneralTabData.Validate.valid(Belt_Option.getExn(param.state.results))) {\n                                  return param.dispatch({\n                                              TAG: \"SaveChanges\",\n                                              _0: product.id\n                                            });\n                                }\n                                \n                              })\n                          };\n                  } else {\n                    return \"NoUpdate\";\n                  }\n              case \"FailSubmission\" :\n                  return {\n                          TAG: \"Update\",\n                          _0: {\n                            product: state.product,\n                            status: \"Editing\",\n                            input: state.input,\n                            results: state.results,\n                            submissionError: true\n                          }\n                        };\n              \n            }\n          } else {\n            switch (action.TAG) {\n              case \"UpdateProduct\" :\n                  return {\n                          TAG: \"Update\",\n                          _0: {\n                            product: action._0,\n                            status: state.status,\n                            input: state.input,\n                            results: state.results,\n                            submissionError: state.submissionError\n                          }\n                        };\n              case \"UpdateInput\" :\n                  var input = action._0;\n                  var match$2 = state.status;\n                  if (match$2 !== \"Editing\") {\n                    return \"NoUpdate\";\n                  }\n                  var match$3 = state.results;\n                  if (match$3 !== undefined) {\n                    return {\n                            TAG: \"UpdateWithSideEffects\",\n                            _0: {\n                              product: state.product,\n                              status: state.status,\n                              input: input,\n                              results: state.results,\n                              submissionError: state.submissionError\n                            },\n                            _1: (function (param) {\n                                param.dispatch(\"Validate\");\n                              })\n                          };\n                  } else {\n                    return {\n                            TAG: \"Update\",\n                            _0: {\n                              product: state.product,\n                              status: state.status,\n                              input: input,\n                              results: state.results,\n                              submissionError: state.submissionError\n                            }\n                          };\n                  }\n              case \"UpdateFeature\" :\n                  var input$1 = action._1;\n                  var idx = action._0;\n                  var match$4 = state.status;\n                  if (match$4 !== \"Editing\") {\n                    return \"NoUpdate\";\n                  }\n                  var init$1 = state.input;\n                  var state_product = state.product;\n                  var state_status = state.status;\n                  var state_input = {\n                    name: init$1.name,\n                    description: init$1.description,\n                    providerId: init$1.providerId,\n                    category: init$1.category,\n                    subcategory: init$1.subcategory,\n                    startDate: init$1.startDate,\n                    endDate: init$1.endDate,\n                    isExclusiveOffer: init$1.isExclusiveOffer,\n                    pricePerMonth: init$1.pricePerMonth,\n                    setupFee: init$1.setupFee,\n                    term: init$1.term,\n                    powerCircuit: init$1.powerCircuit,\n                    bandwidth: init$1.bandwidth,\n                    ipAllocation: init$1.ipAllocation,\n                    totalPowerKw: init$1.totalPowerKw,\n                    features: Belt_Array.mapWithIndex(state.input.features, (function (idx$p, input$p) {\n                            if (idx$p === idx) {\n                              return input$1;\n                            } else {\n                              return input$p;\n                            }\n                          }))\n                  };\n                  var state_results = state.results;\n                  var state_submissionError = state.submissionError;\n                  var state$1 = {\n                    product: state_product,\n                    status: state_status,\n                    input: state_input,\n                    results: state_results,\n                    submissionError: state_submissionError\n                  };\n                  var match$5 = state_results;\n                  if (match$5 !== undefined) {\n                    return {\n                            TAG: \"UpdateWithSideEffects\",\n                            _0: state$1,\n                            _1: (function (param) {\n                                param.dispatch(\"Validate\");\n                              })\n                          };\n                  } else {\n                    return {\n                            TAG: \"Update\",\n                            _0: state$1\n                          };\n                  }\n              case \"RemoveFeature\" :\n                  var idx$1 = action._0;\n                  var match$6 = state.status;\n                  if (match$6 !== \"Editing\") {\n                    return \"NoUpdate\";\n                  }\n                  var init$2 = state.input;\n                  return {\n                          TAG: \"Update\",\n                          _0: {\n                            product: state.product,\n                            status: state.status,\n                            input: {\n                              name: init$2.name,\n                              description: init$2.description,\n                              providerId: init$2.providerId,\n                              category: init$2.category,\n                              subcategory: init$2.subcategory,\n                              startDate: init$2.startDate,\n                              endDate: init$2.endDate,\n                              isExclusiveOffer: init$2.isExclusiveOffer,\n                              pricePerMonth: init$2.pricePerMonth,\n                              setupFee: init$2.setupFee,\n                              term: init$2.term,\n                              powerCircuit: init$2.powerCircuit,\n                              bandwidth: init$2.bandwidth,\n                              ipAllocation: init$2.ipAllocation,\n                              totalPowerKw: init$2.totalPowerKw,\n                              features: Belt_Array.keepWithIndex(state.input.features, (function (param, idx$p) {\n                                      return idx$p !== idx$1;\n                                    }))\n                            },\n                            results: Belt_Option.map(state.results, (function (results) {\n                                    return {\n                                            name: results.name,\n                                            description: results.description,\n                                            providerId: results.providerId,\n                                            category: results.category,\n                                            subcategory: results.subcategory,\n                                            startDate: results.startDate,\n                                            endDate: results.endDate,\n                                            pricePerMonth: results.pricePerMonth,\n                                            setupFee: results.setupFee,\n                                            term: results.term,\n                                            powerCircuit: results.powerCircuit,\n                                            bandwidth: results.bandwidth,\n                                            ipAllocation: results.ipAllocation,\n                                            totalPowerKw: results.totalPowerKw,\n                                            features: Belt_Array.keepWithIndex(results.features, (function (param, idx$p) {\n                                                    return idx$p !== idx$1;\n                                                  }))\n                                          };\n                                  })),\n                            submissionError: state.submissionError\n                          }\n                        };\n              case \"SaveChanges\" :\n                  var productId = action._0;\n                  return {\n                          TAG: \"UpdateWithSideEffects\",\n                          _0: {\n                            product: state.product,\n                            status: \"Submitting\",\n                            input: state.input,\n                            results: state.results,\n                            submissionError: state.submissionError\n                          },\n                          _1: (function (param) {\n                              var dispatch = param.dispatch;\n                              $$Promise.wait(Api.updateProductGeneralData(productId, param.state.input), (function (x) {\n                                      if (x.TAG === \"Ok\") {\n                                        return dispatch({\n                                                    TAG: \"GoToNextTab\",\n                                                    _0: x._0.id\n                                                  });\n                                      }\n                                      SentryLogger.error1({\n                                            rootModule: \"DashboardEditProductGeneralTab\",\n                                            subModulePath: {\n                                              hd: \"DashboardEditProductGeneralTab\",\n                                              tl: /* [] */0\n                                            },\n                                            value: \"make\",\n                                            fullPath: \"DashboardEditProductGeneralTab.DashboardEditProductGeneralTab.make\"\n                                          }, \"DashboardEditProductGeneralTab::SaveChanges::Error\", [\n                                            \"Error\",\n                                            x._0\n                                          ]);\n                                      dispatch(\"FailSubmission\");\n                                    }));\n                            })\n                        };\n              case \"GoToNextTab\" :\n                  var id = action._0;\n                  return {\n                          TAG: \"SideEffects\",\n                          _0: (function (param) {\n                              Url.visit(Routes_Product.Dashboard.editLocation(id));\n                            })\n                        };\n              \n            }\n          }\n        }));\n  var dispatch = match[1];\n  var state = match[0];\n  var match$1 = state.product.status;\n  var tmp;\n  var exit = 0;\n  switch (match$1) {\n    case \"Active\" :\n        var match$2 = state.status;\n        tmp = JsxRuntime.jsxs(JsxRuntime.Fragment, {\n              children: [\n                JsxRuntime.jsx(DashboardProductEditorActiveStatusToggle.make, {\n                      productId: product.id,\n                      status: \"Active\",\n                      busy: match$2 !== \"Editing\"\n                    }),\n                JsxRuntime.jsx(DashboardProductEditorContextMenu.make, {\n                      product: state.product,\n                      onUpdated: (function (product) {\n                          dispatch({\n                                TAG: \"UpdateProduct\",\n                                _0: product\n                              });\n                        })\n                    })\n              ]\n            });\n        break;\n    case \"Disabled\" :\n        var match$3 = state.status;\n        tmp = JsxRuntime.jsxs(JsxRuntime.Fragment, {\n              children: [\n                JsxRuntime.jsx(DashboardProductEditorActiveStatusToggle.make, {\n                      productId: product.id,\n                      status: \"Disabled\",\n                      busy: match$3 !== \"Editing\"\n                    }),\n                JsxRuntime.jsx(DashboardProductEditorContextMenu.make, {\n                      product: state.product,\n                      onUpdated: (function (product) {\n                          dispatch({\n                                TAG: \"UpdateProduct\",\n                                _0: product\n                              });\n                        })\n                    })\n              ]\n            });\n        break;\n    case \"Draft\" :\n    case \"Expired\" :\n        exit = 1;\n        break;\n    case \"Archived\" :\n        tmp = JsxRuntime.jsx(DashboardProductEditorUnarchiveLink.make, {\n              productId: product.id,\n              onUnarchived: (function (product) {\n                  dispatch({\n                        TAG: \"UpdateProduct\",\n                        _0: product\n                      });\n                })\n            });\n        break;\n    \n  }\n  if (exit === 1) {\n    tmp = JsxRuntime.jsx(DashboardProductEditorContextMenu.make, {\n          product: state.product,\n          onUpdated: (function (product) {\n              dispatch({\n                    TAG: \"UpdateProduct\",\n                    _0: product\n                  });\n            })\n        });\n  }\n  var match$4 = state.status;\n  return JsxRuntime.jsxs(DashboardProductEditorLayout.make, {\n              children: [\n                JsxRuntime.jsx(DashboardProductEditorHeader.make, {\n                      product: product,\n                      active: \"GeneralTab\"\n                    }),\n                JsxRuntime.jsx(DashboardProductEditorGeneralTab.make, {\n                      input: state.input,\n                      categories: props.categories,\n                      providers: props.providers,\n                      bandwidthOptions: props.bandwidthOptions,\n                      ipAllocationOptions: props.ipAllocationOptions,\n                      powerOptions: props.powerOptions,\n                      termOptions: props.termOptions,\n                      results: state.results,\n                      update: (function (input) {\n                          dispatch({\n                                TAG: \"UpdateInput\",\n                                _0: input\n                              });\n                        }),\n                      addFeature: (function () {\n                          dispatch(\"AddFeature\");\n                        }),\n                      updateFeature: (function (idx, input) {\n                          dispatch({\n                                TAG: \"UpdateFeature\",\n                                _0: idx,\n                                _1: input\n                              });\n                        }),\n                      removeFeature: (function (idx) {\n                          dispatch({\n                                TAG: \"RemoveFeature\",\n                                _0: idx\n                              });\n                        }),\n                      submit: (function (param) {\n                          dispatch(\"Submit\");\n                        }),\n                      children: JsxRuntime.jsxs(DashboardProductEditorActionBar.make, {\n                            children: [\n                              JsxRuntime.jsx(DashboardProductEditorActionBar.ContextControls.make, {\n                                    children: tmp\n                                  }),\n                              JsxRuntime.jsx(DashboardProductEditorActionBar.$$Error.make, {\n                                    children: state.submissionError ? \"Something went wrong\" : null\n                                  }),\n                              JsxRuntime.jsx(Button.make, {\n                                    size: \"LG\",\n                                    color: \"Primary\",\n                                    expanded: true,\n                                    busy: match$4 !== \"Editing\",\n                                    submit: true,\n                                    children: \"Save changes\"\n                                  })\n                            ]\n                          })\n                    })\n              ]\n            });\n}\n\nvar DashboardEditProductGeneralTab = {\n  Input: undefined,\n  Validate: undefined,\n  ValidationResult: undefined,\n  make: DashboardEditProductGeneralTab$DashboardEditProductGeneralTab\n};\n\nfunction DashboardEditProductGeneralTab$default(props) {\n  var props$1 = props.props;\n  var providers = props$1.providers;\n  var tmp;\n  if (providers.length !== 1) {\n    tmp = {\n      NAME: \"Many\",\n      VAL: Belt_Array.map(providers, ProviderAsFilter.fromJs)\n    };\n  } else {\n    var provider = providers[0];\n    tmp = {\n      NAME: \"One\",\n      VAL: ProviderAsFilter.fromJs(provider)\n    };\n  }\n  return JsxRuntime.jsx(DashboardEditProductGeneralTab$DashboardEditProductGeneralTab, {\n              product: ColocationProduct.Draft.fromJs(props$1.product),\n              providers: tmp,\n              categories: Belt_Array.map(props$1.categories, ProductCategory.fromJs),\n              bandwidthOptions: props$1.bandwidthOptions,\n              ipAllocationOptions: props$1.ipAllocationOptions,\n              powerOptions: props$1.powerOptions,\n              termOptions: props$1.termOptions\n            });\n}\n\nvar $$default = DashboardEditProductGeneralTab$default;\n\nexport {\n  DashboardEditProductGeneralTab ,\n  $$default as default,\n}\n/* Api Not a pure module */\n","import * as React from 'react';\n\nimport DashboardEditProductGeneralTab from './DashboardEditProductGeneralTab.res.js';\n\nexport default ({ context, ...props }) => <DashboardEditProductGeneralTab props={props} context={context} />;\n"],"names":["DashboardEditProductGeneralTab$DashboardEditProductGeneralTab","props","tmp","product","initialState","React","status","input","DashboardProductEditorGeneralTabData","fromProductDraft","results","undefined","submissionError","match","Hooks","state","action","features","length","ColocationProduct","init","TAG","_0","name","description","providerId","category","subcategory","startDate","endDate","isExclusiveOffer","pricePerMonth","setupFee","term","powerCircuit","bandwidth","ipAllocation","totalPowerKw","Belt_Array","DashboardProductFeatureEditor","empty","all","_1","param","valid","Belt_Option","dispatch","id","input$1","idx","init$1","state_product","state_status","state_input","idx$p","input$p","state_results","state$1","idx$1","init$2","productId","$$Promise","Api","x","SentryLogger","rootModule","subModulePath","hd","tl","value","fullPath","Url","Routes_Product","editLocation","exit","match$2","JsxRuntime","children","DashboardProductEditorActiveStatusToggle","busy","DashboardProductEditorContextMenu","onUpdated","match$3","DashboardProductEditorUnarchiveLink","onUnarchived","match$4","DashboardProductEditorLayout","DashboardProductEditorHeader","active","DashboardProductEditorGeneralTab","categories","providers","bandwidthOptions","ipAllocationOptions","powerOptions","termOptions","update","addFeature","updateFeature","removeFeature","submit","DashboardProductEditorActionBar","make","Button","size","color","expanded","$$default","props$1","NAME","VAL","ProviderAsFilter","provider","fromJs","ProductCategory","_ref","context","_objectWithoutProperties","_excluded","DashboardEditProductGeneralTab"],"sourceRoot":""}