{"version":3,"sources":["themes/default.js","themes/index.js","context/AuthContext.js","pages/auth/Login.js","pages/auth/Register.js","pages/general/PrivacyPolicy.js","pages/general/TermsCondition.js","components/Layout/styles.js","components/Header/styles.js","context/LayoutContext.js","components/Header/Header.js","components/Sidebar/styles.js","components/Sidebar/components/SidebarLink/styles.js","components/Sidebar/components/Dot.js","components/Sidebar/components/SidebarLink/SidebarLink.js","components/Sidebar/Sidebar.js","components/PageTitle/styles.js","components/PageTitle/PageTitle.js","components/Dialog/AddItrDialog.js","components/Tables/TablePaginationActions.js","components/Tables/GlobalFilter.js","components/Tables/TableToolbar.js","components/Tables/EnhancedTable.js","components/Dialog/CreateDialog.js","components/Dialog/SendMenuDialog.js","pages/tables/Table.js","components/Layout/Layout.js","components/App.js","serviceWorker.js","index.js"],"names":["primary","secondary","warning","success","info","lightenRate","defaultTheme","palette","main","light","tinycolor","lighten","toHexString","dark","darken","contrastText","text","hint","background","default","customShadows","widget","widgetDark","widgetWide","overrides","MuiBackdrop","root","backgroundColor","MuiMenu","paper","boxShadow","MuiSelect","icon","color","MuiListItem","button","MuiTouchRipple","child","MuiTableRow","height","MuiTableCell","borderBottom","paddingLeft","head","fontSize","body","PrivateSwitchBase","marginLeft","themes","createMuiTheme","typography","h1","h2","h3","h4","h5","h6","authContext","createContext","ProvideAuth","children","auth","useState","user","setUser","localStorage","getItem","isAuth","setisAuth","enqueueSnackbar","useSnackbar","history","useHistory","loginMutation","params","a","fetch","process","method","headers","JSON","stringify","response","ok","Error","json","data","useMutation","onSuccess","setItem","accessToken","username","push","onError","variant","mutate","isLoading","logOut","removeItem","useProvideAuth","Provider","value","useAuth","useContext","useStyles","makeStyles","theme","display","flexDirection","justifyContent","titleBox","marginBottom","buttonBox","padding","Login","classes","Helmet","Box","className","Container","maxWidth","initialValues","password","validationSchema","Yup","shape","max","required","onSubmit","values","Promise","r","setTimeout","errors","handleBlur","handleChange","handleSubmit","isSubmitting","touched","Typography","gutterBottom","TextField","error","Boolean","fullWidth","helperText","label","margin","name","onBlur","onChange","type","Button","disabled","size","alignItems","Link","component","RouterLink","to","checkBox","Register","email","firstName","lastName","policy","oneOf","sx","mb","Checkbox","checked","underline","FormHelperText","spacing","PrivacyPolicy","align","TermsCondition","overflowX","content","flexGrow","width","minHeight","contentShift","transition","transitions","create","easing","sharp","duration","enteringScreen","fakeToolbar","mixins","toolbar","link","logotype","marginRight","fontWeight","whiteSpace","breakpoints","down","appBar","zIndex","drawer","leavingScreen","paddingRight","hide","grow","search","position","borderRadius","fade","common","black","cursor","searchFocused","up","searchIcon","right","searchIconOpened","inputRoot","inputInput","messageContent","headerMenu","marginTop","headerMenuList","headerMenuItem","headerMenuButton","headerMenuButtonSandwich","headerMenuButtonCollapse","headerIcon","headerIconCollapse","profileMenu","minWidth","profileMenuUser","profileMenuItem","profileMenuIcon","profileMenuLink","textDecoration","messageNotification","messageNotificationSide","messageNotificationBodySide","sendMessageButton","textTransform","sendButtonIcon","purchaseBtn","LayoutStateContext","React","LayoutDispatchContext","layoutReducer","state","action","isSidebarOpened","LayoutProvider","useReducer","dispatch","useLayoutState","context","undefined","useLayoutDispatch","toggleSidebar","Header","props","layoutState","layoutDispatch","setProfileMenu","AppBar","Toolbar","IconButton","onClick","classNames","ArrowBack","weight","aria-haspopup","aria-controls","e","currentTarget","Menu","id","open","anchorEl","onClose","disableAutoFocusItem","MenuItem","menuButton","flexShrink","drawerOpen","drawerClose","mobileBackButton","only","externalLink","linkActive","linkNested","linkIcon","linkIconActive","linkText","linkTextActive","linkTextHidden","opacity","nestedList","sectionTitle","divider","dotBase","dotSmall","dotLarge","Dot","useTheme","classnames","style","SidebarLink","location","nested","isOpen","setIsOpen","isLinkActive","pathname","indexOf","Divider","includes","ListItem","linkRoot","disableRipple","href","ListItemIcon","ListItemText","preventDefault","Inbox","Collapse","in","timeout","unmountOnExit","List","disablePadding","map","childrenLink","structure","withRouter","isPermanent","setPermanent","useEffect","window","addEventListener","handleWindowWidthChange","removeEventListener","Drawer","sidebarList","isSmallScreen","innerWidth","md","pageTitleContainer","typo","PageTitle","title","AddItrDialog","initialState","productName","phoneNumber","hospitalid","recomend","setRecomend","products","setProducts","customerId","userInfo","setUserInfo","setOpen","queryClient","useQueryClient","handleClose","putItrData","changeUserInfo","console","log","axios","put","getData","mutateGetData","msg","invalidateQueries","mutateRecomend","isLoadingRecomend","mutateChangeUserInfo","isLoadingChangeUserInfo","isLoadingGetData","getAllProducts","useQuery","valueTabs","setValueTabs","Tooltip","Dialog","aria-labelledby","DialogContent","CircularProgress","TabContext","DialogTitle","TabList","event","newValue","Tab","TabPanel","defaultValue","autoFocus","target","inputProps","inputMode","pattern","product","split","Chip","item","onDelete","olds","filter","old","productId","Autocomplete","options","getOptionLabel","option","_","find","Number","concat","renderInput","placeholder","DialogActions","startIcon","TablePaginationActions","count","page","rowsPerPage","onChangePage","aria-label","direction","Math","ceil","white","pointerEvents","GlobalFilter","preGlobalFilteredRows","globalFilter","setGlobalFilter","length","InputBase","input","useToolbarStyles","highlight","flex","TableToolbar","numSelected","deleteUserHandler","addUserHandler","dateRange","setDateRange","clsx","LocalizationProvider","dateAdapter","AdapterDateFns","DateRangePicker","startText","endText","inputFormat","mask","startProps","endProps","Fragment","mx","EnhancedTable","columns","setData","updateMyData","skipPageReset","useTable","autoResetPage","useGlobalFilter","useSortBy","usePagination","useRowSelect","getTableProps","headerGroups","prepareRow","gotoPage","setPageSize","pageIndex","pageSize","selectedRowIds","TableContainer","Object","keys","array","indexs","newData","x","parseInt","i","TableHead","headerGroup","TableRow","getHeaderGroupProps","column","TableCell","getHeaderProps","getSortByToggleProps","render","TableSortLabel","active","isSorted","isSortedDesc","TableBody","row","getRowProps","cells","cell","getCellProps","TableFooter","TablePagination","rowsPerPageOptions","colSpan","SelectProps","native","newPage","onChangeRowsPerPage","ActionsComponent","CreateDialog","hospitalId","agentDivision","has_recommended","hasAgreedConsent","getAllAgents","agents","createUser","post","userCreate","message","mutateCreateUser","isLoadingCreateUser","agentName","agentDivison","FormGroup","FormControlLabel","control","SendMenuDialog","sendMenuResponse","Tables","useMemo","accessor","Cell","original","index","date","moment","add","format","textAlign","openImportDialog","setOpenImportDialog","exportIsWaiting","setExportIsWaiting","importIsWaiting","setImportIsWaiting","createDialogOpen","setCreateDialogOpen","sendMenuDialogOpen","setSendMenuDialogOpen","importErrorMessages","setimportErrorMessages","from","dateFilter","setDateFilter","baseUrl","getAllData","urlParams","URLSearchParams","toString","customers","start","getCsvRecords","blob","file","URL","createObjectURL","assign","importFromCSVLocally","importFile","files","csvFile","Array","logs","forEach","result","parse","header","fastMode","pushLogs","then","catch","errorMessage","onMutate","mutateImport","status","mutateAsync","tableData","setTableData","setSkipPageReset","DialogContentText","dense","key","CheckCircle","ErrorRounded","gap","reload","Refresh","Grid","container","justify","xs","htmlFor","Input","accept","persist","handleImport","Paper","rowIndex","columnId","path","App","exact","PrivateRoute","Layout","PublicRoute","rest","createElement","hostname","match","QueryClient","ReactDOM","ThemeProvider","Themes","maxSnack","anchorOrigin","vertical","horizontal","QueryClientProvider","client","CssBaseline","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.582939dc.chunk.js","sourcesContent":["import tinycolor from \"tinycolor2\";\n\nconst primary = \"#536DFE\";\nconst secondary = \"#FF5C93\";\nconst warning = \"#FFC260\";\nconst success = \"#3CD4A0\";\nconst info = \"#9013FE\";\n\nconst lightenRate = 7.5;\nconst darkenRate = 15;\n\nconst defaultTheme = {\n palette: {\n primary: {\n main: primary,\n light: tinycolor(primary)\n .lighten(lightenRate)\n .toHexString(),\n dark: tinycolor(primary)\n .darken(darkenRate)\n .toHexString(),\n },\n secondary: {\n main: secondary,\n light: tinycolor(secondary)\n .lighten(lightenRate)\n .toHexString(),\n dark: tinycolor(secondary)\n .darken(darkenRate)\n .toHexString(),\n contrastText: \"#FFFFFF\",\n },\n warning: {\n main: warning,\n light: tinycolor(warning)\n .lighten(lightenRate)\n .toHexString(),\n dark: tinycolor(warning)\n .darken(darkenRate)\n .toHexString(),\n },\n success: {\n main: success,\n light: tinycolor(success)\n .lighten(lightenRate)\n .toHexString(),\n dark: tinycolor(success)\n .darken(darkenRate)\n .toHexString(),\n },\n info: {\n main: info,\n light: tinycolor(info)\n .lighten(lightenRate)\n .toHexString(),\n dark: tinycolor(info)\n .darken(darkenRate)\n .toHexString(),\n },\n text: {\n primary: \"#4A4A4A\",\n secondary: \"#6E6E6E\",\n hint: \"#B9B9B9\",\n },\n background: {\n default: \"#F6F7FF\",\n light: \"#F3F5FF\",\n },\n },\n customShadows: {\n widget:\n \"0px 3px 11px 0px #E8EAFC, 0 3px 3px -2px #B2B2B21A, 0 1px 8px 0 #9A9A9A1A\",\n widgetDark:\n \"0px 3px 18px 0px #4558A3B3, 0 3px 3px -2px #B2B2B21A, 0 1px 8px 0 #9A9A9A1A\",\n widgetWide:\n \"0px 12px 33px 0px #E8EAFC, 0 3px 3px -2px #B2B2B21A, 0 1px 8px 0 #9A9A9A1A\",\n },\n overrides: {\n MuiBackdrop: {\n root: {\n backgroundColor: \"#4A4A4A1A\",\n },\n },\n MuiMenu: {\n paper: {\n boxShadow:\n \"0px 3px 11px 0px #E8EAFC, 0 3px 3px -2px #B2B2B21A, 0 1px 8px 0 #9A9A9A1A\",\n },\n },\n MuiSelect: {\n icon: {\n color: \"#B9B9B9\",\n },\n },\n MuiListItem: {\n root: {\n \"&$selected\": {\n backgroundColor: \"#F3F5FF !important\",\n \"&:focus\": {\n backgroundColor: \"#F3F5FF\",\n },\n },\n },\n button: {\n \"&:hover, &:focus\": {\n backgroundColor: \"#F3F5FF\",\n },\n },\n },\n MuiTouchRipple: {\n child: {\n backgroundColor: \"white\",\n },\n },\n MuiTableRow: {\n root: {\n height: 56,\n },\n },\n MuiTableCell: {\n root: {\n borderBottom: \"1px solid rgba(224, 224, 224, .5)\",\n paddingLeft: 24\n },\n head: {\n fontSize: \"0.95rem\",\n },\n body: {\n fontSize: \"0.95rem\",\n },\n },\n PrivateSwitchBase: {\n root: {\n marginLeft: 10\n }\n }\n },\n};\n\nexport default defaultTheme;\n","import defaultTheme from \"./default\";\n\nimport { createMuiTheme } from \"@material-ui/core\";\n\nconst overrides = {\n typography: {\n h1: {\n fontSize: \"3rem\",\n },\n h2: {\n fontSize: \"2rem\",\n },\n h3: {\n fontSize: \"1.64rem\",\n },\n h4: {\n fontSize: \"1.5rem\",\n },\n h5: {\n fontSize: \"1.285rem\",\n },\n h6: {\n fontSize: \"1.142rem\",\n },\n },\n};\n\nconst themes = {\n default: createMuiTheme({ ...defaultTheme, ...overrides }),\n};\n\nexport default themes;\n","import { useSnackbar } from \"notistack\";\nimport { createContext, useContext, useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { useMutation } from \"react-query\";\n\nconst authContext = createContext();\n\nexport function ProvideAuth({ children }) {\n const auth = useProvideAuth();\n return {children};\n}\n\nexport const useAuth = () => {\n return useContext(authContext);\n};\n\nfunction useProvideAuth() {\n const [user, setUser] = useState(null);\n const [isAuth, setisAuth] = useState(!!localStorage.getItem(\"token\"));\n const { enqueueSnackbar } = useSnackbar();\n\n const history = useHistory();\n\n const loginMutation = async (params) => {\n const response = await fetch(\n `${process.env.REACT_APP_BACKEND_URL}/api/auth/signin`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(params),\n }\n );\n\n if (!response.ok) {\n throw new Error(\"Error Bruh\");\n } else {\n const data = await response.json();\n return data;\n }\n };\n\n const { mutate, isLoading } = useMutation(loginMutation, {\n onSuccess: (data) => {\n localStorage.setItem(\"token\", data.accessToken);\n localStorage.setItem(\"user\", data.username);\n setisAuth(true);\n setUser(data.username);\n history.push(\"/app/customers\");\n },\n onError: () => {\n enqueueSnackbar(\"Kombinasi email dan password salah\", {\n variant: \"error\",\n });\n },\n });\n\n const logOut = () => {\n localStorage.removeItem(\"token\");\n localStorage.removeItem(\"user\");\n setisAuth(false);\n history.push(\"/login\");\n };\n\n return { isAuth, user, mutate, logOut, isLoading };\n}\n","import { Link as RouterLink } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\nimport * as Yup from \"yup\";\nimport { Formik } from \"formik\";\nimport {\n Box,\n Button,\n Container,\n Link,\n makeStyles,\n TextField,\n Typography,\n} from \"@material-ui/core\";\nimport { useAuth } from \"../../context/AuthContext\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n backgroundColor: theme.palette.background.default,\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100vh\",\n justifyContent: \"center\",\n },\n titleBox: {\n marginBottom: \"12px\",\n },\n buttonBox: {\n padding: \"8px 0px\",\n },\n}));\n\nconst Login = () => {\n const classes = useStyles();\n const { mutate } = useAuth();\n\n return (\n <>\n \n Login | Material Kit\n \n \n \n {\n await new Promise((r) => setTimeout(r, 500));\n mutate(values);\n }}\n >\n {({\n errors,\n handleBlur,\n handleChange,\n handleSubmit,\n isSubmitting,\n touched,\n values,\n }) => (\n
\n \n \n Sign in\n \n \n Sign in on the internal platform\n \n \n \n \n \n \n Sign in now\n \n \n \n \n Terms & Conditions\n \n \n Privacy Policy\n \n \n \n )}\n \n
\n
\n \n );\n};\n\nexport default Login;\n","import { Link as RouterLink } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\nimport * as Yup from \"yup\";\nimport { Formik } from \"formik\";\nimport {\n Box,\n Button,\n Checkbox,\n Container,\n FormHelperText,\n Link,\n makeStyles,\n TextField,\n Typography,\n} from \"@material-ui/core\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n backgroundColor: theme.palette.background.default,\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100vh\",\n justifyContent: \"center\",\n },\n checkBox: {\n marginLeft: \"-20px\",\n display: \"flex\",\n alignItems: \"center\",\n },\n buttonBox: {\n padding: \"8px 0px\",\n },\n}));\n\nconst Register = () => {\n const classes = useStyles();\n return (\n <>\n \n Register | Material Kit\n \n \n \n \n {({\n errors,\n handleBlur,\n handleChange,\n handleSubmit,\n isSubmitting,\n touched,\n values,\n }) => (\n
\n \n \n Create new account\n \n \n Use your email to create new account\n \n \n \n \n \n \n \n \n \n I have read the{\" \"}\n \n Terms and Conditions\n \n \n \n {Boolean(touched.policy && errors.policy) && (\n {errors.policy}\n )}\n \n \n Sign up now\n \n \n \n Have an account?{\" \"}\n \n Sign in\n \n \n \n )}\n \n
\n
\n \n );\n};\n\nexport default Register;\n","import { makeStyles, Typography } from \"@material-ui/core\";\nimport { Box } from \"@material-ui/core\";\nimport { Container } from \"@material-ui/core\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n backgroundColor: theme.palette.background.default,\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n margin: theme.spacing(6, 0),\n },\n titleBox: {\n margin: theme.spacing(4, 0),\n },\n}));\n\nconst PrivacyPolicy = () => {\n const classes = useStyles();\n return (\n \n \n \n \n Pernyataan Privasi\n \n \n Danone tahu bahwa Anda peduli bagaimana data pribadi Anda digunakan\n dan kami menyadari pentingnya melindungi privasi Anda.\n

\n

\n Pernyataan Privasi ini menjelaskan bagaimana PT Sarihusada Generasi\n Mahardhika, berkedudukan di Yogyakarta, PT Nutricia Indonesia\n Sejahtera, berkedudukan di Jakarta Timur (\"Danone\") mengumpulkan dan\n mengelola data pribadi Anda serta untuk pemesanan produk data\n pribadi dikendalikan oleh pihak distributor Tigaraksa.\n

\n Pernyataan ini berisi informasi tentang data apa yang kami\n kumpulkan, bagaimana kami menggunakannya, mengapa kami\n membutuhkannya dan bagaimana hal itu bisa menguntungkan Anda.\n

\n

\n Hubungi tim Careline kami jika Anda memiliki pertanyaan dan\n komentar, atau jika Anda ingin mengajukan permintaan mengenai hak\n subyek data Anda.\n

\n

\n Pernyataan privasi ini terakhir diperbarui pada 22 April 2021.\n

\n

\n Prinsip dasar dan komitmen privasi kami\n

\n Di Danone kami berkomitmen untuk melindungi hak Anda untuk privasi.\n Kami bertujuan untuk melindungi data pribadi apa pun yang kami\n miliki, untuk mengelola data pribadi Anda secara bertanggung jawab\n dan transparan dalam praktik kami. Kepercayaan anda penting bagi\n kami. Karena itu kami berkomitmen pada prinsip-prinsip dasar\n berikut:\n

\n
    \n
  • \n Anda tidak memiliki kewajiban untuk memberikan data pribadi yang\n diminta oleh kami. Namun, jika Anda memilih untuk tidak\n melakukannya, kami mungkin tidak dapat menyediakan beberapa\n layanan atau produk kepada Anda;\n
  • \n
  • \n Kami hanya mengumpulkan dan memproses data Anda untuk tujuan\n yang ditetapkan dalam Pernyataan Privasi ini atau untuk tujuan\n tertentu yang kami bagikan dengan Anda dan/ atau yang telah Anda\n setujui;\n
  • \n
  • \n Kami bertujuan untuk mengumpulkan, memproses, dan menggunakan\n sesedikit mungkin data pribadi;\n
  • \n
  • \n Ketika kami mengumpulkan data pribadi Anda, kami bertujuan untuk\n menjaga data tersebut seakurat dan setepat mungkin.\n
  • \n
  • \n Jika data pribadi yang kami kumpulkan tidak lagi diperlukan\n untuk tujuan apa pun dan kami tidak diharuskan oleh hukum untuk\n menyimpannya, kami akan melakukan apa yang kami bisa untuk\n menghapus, menghancurkan, atau tidak mengidentifikasi secara\n permanen.\n
  • \n
  • \n Data pribadi Anda tidak akan dibagikan, dijual, disewakan, atau\n diungkapkan selain sebagaimana dijelaskan dalam Pernyataan\n Privasi ini.\n
  • \n
\n Siapa yang mengumpulkan?\n

\n Setiap data pribadi yang diberikan kepada atau dikumpulkan oleh\n Danone dikendalikan oleh PT Sarihusada Generasi Mahardhika,\n berkedudukan di Yogyakarta, PT Nutricia Indonesia Sejahtera,\n berkedudukan di Jakarta Timur , berkedudukan di Jakarta Selatan\n sebagai pengendali data (“Danone”) serta untuk pemesanan produk data\n pribadi dikendalikan oleh pihak distributor Tigaraksa.\n

\n

\n Pernyataan Privasi ini berlaku untuk data pribadi yang dikumpulkan\n oleh Danone sehubungan dengan layanan dan produk yang kami tawarkan.\n Pernyataan ini juga berlaku untuk untuk konten pemasaran Danone,\n termasuk penawaran dan iklan untuk produk dan layanan Danone,\n kegiatan promosi Danone, yang kami (atau penyedia layanan bertindak\n atas nama kami) kirimkan kepada Anda di situs web pihak ketiga,\n platform dan aplikasi berdasarkan informasi penggunaan situs Anda.\n Situs web pihak ketiga ini umumnya memiliki Pernyataan Privasi dan\n Syarat dan Ketentuan sendiri. Kami mendorong Anda untuk membacanya\n sebelum menggunakan situs web tersebut.\n

\n

\n Data pribadi apa yang kami kumpulkan?\n

\n Data pribadi yang kami kumpulkan bervariasi tergantung pada tujuan\n pengumpulan dan produk atau layanan yang kami sediakan untuk Anda.\n

\n

\n Secara umum, kami dapat mengumpulkan jenis data pribadi berikut dari\n Anda secara langsung:\n

\n
    \n
  1. \n Data kontak pribadi, seperti nama Anda, alamat fisik, nomor\n telepon dan lokasi;\n
  2. \n
  3. \n Komunikasi dengan kami, yang dapat mencakup perincian percakapan\n kami melalui obrolan dan/atau saluran layanan pelanggan;\n
  4. \n
  5. \n Informasi demografis, seperti usia dan jenis kelamin serta\n preferensi gaya hidup Anda. Preferensi gaya hidup dapat mencakup\n preferensi Anda untuk beberapa produk yang kami tawarkan, dan\n minat Anda terkait dengan produk-produk tersebut;\n
  6. \n
  7. \n Riwayat browser, seperti halaman yang diakses, tanggal akses,\n lokasi ketika diakses, dan alamat IP;\n
  8. \n
\n Mengapa kami mengumpulkan dan menggunakan data pribadi Anda?\n

\n Kami mengumpulkan data pribadi Anda agar kami dapat memberi Anda\n pengalaman online terbaik dan memberikan Anda layanan pelanggan yang\n berkualitas tinggi. Secara khusus kami dapat mengumpulkan,\n menyimpan, menggunakan, dan mengungkapkan data pribadi Anda untuk\n tujuan berikut:\n
    \n
  1. \n Untuk memberikan produk informasi kepada Anda melalui Careline\n Danone yang akan menghubungi melalui Whatsapp Business\n
  2. \n
  3. \n Menjawab dan menerima pesanan produk Danone dari pengguna dengan\n menggunakan fitur otomatis (“Chatbot”) melalui media komunikasi\n nomor WhatsApp Business\n
  4. \n
  5. \n Untuk memproses pemesanan dan pembayaran Anda ke pihak\n Distributor Tigaraksa, jika Anda membeli produk kami, untuk\n menyediakan Anda dengan status pesanan Anda, berurusan dengan\n pertanyaan dan permintaan Anda, dan menilai dan menangani\n keluhan;\n
  6. \n
  7. \n Untuk memproses dan menjawab pertanyaan Anda atau untuk\n menghubungi Anda untuk menjawab pertanyaan dan/atau permintaan\n Anda;\n
  8. \n
  9. \n Untuk mengotentikasi/memverifikasi identitas orang yang\n menghubungi kami melalui telepon, alat elektronik atau lainnya;\n
  10. \n
  11. Untuk pelatihan internal dan tujuan jaminan kualitas;
  12. \n
  13. \n Untuk memahami dan menilai minat, keinginan, dan perubahan\n kebutuhan pelanggan, untuk meningkatkan situs web kami, produk\n dan layanan kami saat ini, dan/ atau mengembangkan produk dan\n layanan baru;\n
  14. \n
  15. \n Untuk menyediakan produk dan komunikasi yang dipersonalisasi\n serta rekomendasi produk kepada Anda pelanggan.\n
  16. \n
\n Produk dan layanan yang dimaksud disini adalah seluruh produk\n Danone.\n

\n

\n Kami juga mungkin memerlukan data pribadi Anda untuk mematuhi\n kewajiban hukum atau dalam konteks hubungan kontraktual yang kami\n miliki dengan Anda.\n

\n Ketika kami mengumpulkan dan menggunakan data pribadi Anda untuk\n tujuan yang disebutkan di atas atau untuk tujuan lain, kami akan\n memberi tahu Anda sebelum atau pada saat pengumpulan.\n

\n

\n Apabila diperlukan, kami akan meminta persetujuan Anda untuk\n memproses data pribadi. Di mana Anda telah memberikan persetujuan\n untuk kegiatan pemrosesan, Anda memiliki hak untuk menarik\n persetujuan Anda kapan saja.\n

\n

\n Hak Anda\n

\n Saat kami memproses data pribadi Anda, Anda berhak atas sejumlah hak\n dan dapat menggunakan hak-hak ini kapan saja. Kami telah memberikan\n ikhtisar tentang hak-hak di bawah ini bersama dengan apa yang\n terkandung di dalamnya bagi Anda. Anda dapat menggunakan hak Anda\n dengan menghubungi tim Careline kami.\n

\n

\n Hak untuk mengakses data pribadi Anda dan koreksi\n

\n Anda memiliki hak untuk mengakses, memperbaiki, atau memperbarui\n data pribadi Anda kapan saja. Kami memahami pentingnya hal ini dan\n jika Anda ingin menggunakan hak Anda, silakan hubungi tim Careline\n

\n

\n Hak portabilitas data\n

\n Data pribadi Anda portabel. Ini berarti dapat dipindahkan, disalin,\n atau ditransmisikan secara elektronik. Namun, hak ini hanya berlaku\n jika:\n
    \n
  1. Pemrosesan didasarkan pada persetujuan Anda;
  2. \n
  3. Proses berlangsung untuk pelaksanaan kontrak;
  4. \n
  5. Proses berlangsung dengan cara otomatis;
  6. \n
\n Jika Anda ingin menggunakan hak Anda untuk portabilitas data,\n silakan hubungi tim Careline kami.\n

\n

\n Hak untuk menghapus data pribadi Anda.\n

\n Anda berhak meminta kami menghapus data Anda jika:\n
    \n
  1. \n data pribadi Anda tidak lagi diperlukan sehubungan dengan tujuan\n yang kami kumpulkan; atau\n
  2. \n
  3. \n Anda menarik persetujuan yang sebelumnya Anda berikan kepada\n kami untuk memproses data pribadi Anda, dan tidak ada dasar\n hukum lain untuk memproses data pribadi itu; atau\n
  4. \n
  5. \n Anda keberatan jika kami memproses data pribadi Anda untuk\n tujuan pemasaran langsung; atau\n
  6. \n
  7. \n Anda keberatan kami memproses data pribadi Anda untuk\n kepentingan sah Danone (seperti meningkatkan pengalaman pengguna\n secara keseluruhan di situs web);\n
  8. \n
  9. data pribadi tidak diproses secara sah; atau
  10. \n
  11. data pribadi Anda perlu dihapus untuk mematuhi hukum.
  12. \n
  13. \n Jika Anda ingin menghapus data pribadi yang kami miliki tentang\n Anda, silakan hubungi tim Careline kami dan kami akan mengambil\n langkah-langkah yang wajar untuk menanggapi permintaan Anda\n sesuai dengan persyaratan hukum.\n
  14. \n
  15. \n
\n Jika data pribadi yang kami kumpulkan tidak lagi diperlukan untuk\n tujuan apa pun dan kami tidak diharuskan oleh hukum untuk\n menyimpannya, kami akan melakukan apa yang kami bisa untuk\n menghapus, menghancurkan, atau tidak mengidentifikasi secara\n permanen.\n

\n

\n Hak atas pembatasan pemrosesan\n

\n Anda berhak membatasi pemrosesan data pribadi Anda jika :

\n
    \n
  1. \n Anda tidak percaya bahwa data pribadi yang kami miliki tentang\n Anda adalah akurat; atau\n
  2. \n
  3. \n data pribadi tidak diproses secara sah, tetapi alih-alih\n menghapus data pribadi, Anda lebih suka kami membatasi\n pemrosesan sebagai gantinya; atau\n
  4. \n
  5. \n kami tidak lagi membutuhkan data pribadi Anda untuk tujuan kami\n mengumpulkannya, tetapi Anda memerlukan data untuk membuat,\n melaksanakan atau mempertahankan klaim hukum; atau\n
  6. \n
  7. \n Anda berkeberatan dengan pemrosesan data pribadi Anda dan sedang\n menunggu verifikasi apakah minat Anda yang terkait dengan\n keberatan tersebut lebih besar daripada alasan yang sah untuk\n memproses data Anda.\n
  8. \n
\n

\n Jika Anda ingin membatasi pemrosesan data pribadi Anda, beri tahu\n kami dengan menghubungi tim Careline kami dan kami akan mengambil\n langkah-langkah yang wajar untuk menanggapi permintaan Anda sesuai\n dengan persyaratan hukum.\n

\n

\n Hak untuk menolak\n

\n Anda memiliki hak untuk menolak pemrosesan data pribadi Anda kapan\n saja. Silahkan hubungi tim Careline kami.\n

\n

\n Hak untuk mengajukan pengaduan ke otoritas pengawas\n

\n Anda memiliki hak untuk mengajukan pengaduan langsung ke otoritas\n pengawas tentang bagaimana kami memproses data pribadi.\n

\n

\n Bagaimana kami melindungi data pribadi Anda\n

\n Kami memahami bahwa keamanan data pribadi Anda penting. Kami\n melakukan upaya terbaik kami untuk melindungi data pribadi Anda dari\n penyalahgunaan, gangguan, kehilangan, akses tidak sah, modifikasi,\n atau pengungkapan. Kami telah menerapkan sejumlah langkah keamanan\n untuk membantu melindungi data pribadi Anda. Misalnya, kami\n menerapkan kontrol akses, menggunakan firewall dan server yang aman,\n dan kami mengenkripsi data pribadi.\n

\n

\n Berbagi data pribadi Anda\n

\n Saat kami membagikan data pribadi Anda dengan afiliasi dan\n organisasi lain, kami memastikan kami hanya melakukannya dengan\n organisasi yang melindungi dan melindungi data pribadi Anda dan\n mematuhi undang-undang privasi yang berlaku dengan cara yang sama\n atau serupa yang kami lakukan.\n

\n

\n Data pribadi Anda tidak akan dibagikan, dijual, disewakan, atau\n diungkapkan selain sebagaimana dijelaskan dalam Pernyataan Privasi\n ini. Namun, kami dapat membagikan data Anda untuk keperluan hukum\n dan/atau saat diminta otoritas pemerintah.\n

\n

\n Berbagi data secara internasional\n

\n Data pribadi dapat diproses di luar wilayah Republik Indonesia. Saat\n diproses di luar wilayah Republik Indonesia, Danone akan memastikan\n bahwa pemrosesan data lintas batas ini dilindungi oleh pengamanan\n yang memadai.\n

\n

\n Perlindungan yang kami gunakan untuk melindungi pemrosesan data\n lintas batas meliputi:\n

\n sertifikasi yang menunjukkan bahwa pihak ketiga di luar wilayah\n Republik Indonesia memproses data pribadi sedemikian rupa sehingga\n konsisten dengan Peraturan Perlindungan Data di Republik Indonesia.\n Sertifikasi ini disetujui baik oleh otoritas pengawas yang kompeten\n atau badan akreditasi nasional yang kompeten dalam hal Peraturan\n Perlindungan Data.\n

\n

\n Pengambilan keputusan dan pembuatan profil otomatis\n

\n Untuk beberapa layanan dan produk, kami dapat memproses data pribadi\n Anda menggunakan cara otomatis. Pada dasarnya ini berarti bahwa\n keputusan diambil secara otomatis tanpa campur tangan manusia.\n

\n

\n Kami juga dapat memproses data pribadi Anda untuk tujuan pembuatan\n profil guna memprediksi perilaku Anda di situs web atau produk kami\n yang mungkin menarik bagi Anda.\n

\n

\n Jika kami bermaksud menggunakan metode tersebut, kami tentu saja\n akan memberi tahu Anda dan kami akan memberi Anda kesempatan untuk\n menolak proses ini sebelumnya. Anda juga bebas untuk menghubungi tim\n Careline kami untuk informasi lebih lanjut tentang pemrosesan\n tersebut.\n

\n

\n Bagaimana cara menghubungi kami\n

\n Jika Anda memiliki pertanyaan, komentar atau keluhan mengenai\n Pernyataan Privasi ini atau pemrosesan data pribadi Anda, silakan\n hubungi tim Careline kami di nomor berikut 081280023972\n

\n

\n Bagaimana cara kami memperbarui Pernyataan ini?\n

\n Kami akan memperbarui Pernyataan Privasi ini bila perlu untuk\n memenuhi permintaan pelanggan dan menyesuaikan perubahan dalam\n produk dan layanan kami. Ketika kami memposting perubahan pada\n pernyataan ini, kami akan merevisi tanggal \"terakhir diperbarui\" di\n bagian atas Pemberitahuan ini. Jika perubahannya signifikan, kami\n akan memberikan pemberitahuan yang lebih menonjol (termasuk, untuk\n layanan tertentu, pemberitahuan email tentang perubahan\n Pemberitahuan Privasi).\n

\n

\n Ketentuan atau Pernyataan Privasi Tambahan\n

\n Selain Pernyataan Privasi ini, mungkin ada kampanye atau promosi\n khusus yang akan diatur oleh persyaratan atau pernyataan privasi\n tambahan. Kami menyarankan Anda untuk membaca ketentuan atau\n pemberitahuan tambahan ini sebelum berpartisipasi dalam kampanye\n atau promosi apa pun karena Anda harus mematuhinya jika Anda ingin\n berpartisipasi. Ketentuan atau pernyataan privasi tambahan apa pun\n akan tersedia bagi Anda secara jelas selama periode kampanye atau\n promosi.\n

\n ***\n \n
\n
\n
\n );\n};\n\nexport default PrivacyPolicy;\n","import { makeStyles, Typography } from \"@material-ui/core\";\nimport { Box } from \"@material-ui/core\";\nimport { Container } from \"@material-ui/core\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n backgroundColor: theme.palette.background.default,\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n margin: theme.spacing(6, 0),\n },\n titleBox: {\n margin: theme.spacing(4, 0, 0),\n },\n}));\n\nconst TermsCondition = () => {\n const classes = useStyles();\n return (\n \n \n \n \n Syarat dan Ketentuan\n \n \n Layanan Nutricia Medical (NUTRIMED)\n \n \n Mohon Anda membaca Syarat dan Ketentuan ini secara seksama sebelum\n mengakses atau menggunakan Layanan Nutricia Medical (Nutrimed)\n (selanjutnya disebut “Layanan”) ini. Dengan mengakses atau\n menggunakan Layanan ini, Anda telah membaca secara seksama, mengerti\n dan menyetujui syarat-syarat dan ketentuan-ketentuan, termasuk\n Pernyataan Privasi, jika ada, serta batasan hukum yang berlaku\n sehubungan dengan Layanan ini (selanjutnya disebut “Syarat dan\n Ketentuan”). Jika Anda tidak berkenan untuk tunduk pada Syarat dan\n Ketentuan ini, mohon untuk tidak mengakses Layanan.\n \n \n Kami berhak sewaktu waktu untuk mengubah Syarat dan Ketentuan ini,\n dan perubahan tersebut berlaku efektif setelah di posting melalui\n Layanan ataupun platform terkait Layanan dan akan diberikan melalui\n pemberitahuan melalui Layanan. Anda, sebagai pengguna Layanan ini\n (“Pengguna”), bertanggung jawab untuk membaca secara seksama\n ketentuan tersebut setiap kali menggunakan atau mengakses Layanan.\n Dengan mengakses atau menggunakan Layanan ini lebih lanjut merupakan\n bentuk persetujuan atas perubahan Syarat dan Ketentuan pada Layanan.\n \n \n Kami juga berhak untuk mengganti, mengubah, menangguhkan dan/atau\n menghentikan semua atau bagian apapun dari Layanan ini setiap saat\n atau setelah memberikan pemberitahuan sebagaimana dipersyaratkan\n oleh undang-undang dan peraturan yang berlaku. Kami dapat\n meluncurkan layanan tertentu atau fitur tertentu dalam versi beta,\n yang mungkin tidak berfungsi dengan baik atau sama seperti versi\n akhir dan kami tidak bertanggung jawab dalam hal demikian. Kami juga\n dapat membatasi fitur tertentu atau membatasi akses Anda ke bagian\n atau seluruh layanan atas kebijakannya sendiri dan tanpa\n pemberitahuan atau kewajiban. Kami berhak untuk menolak memberikan\n akses ke Layanan kepada Anda atau mengizinkan Anda untuk membuka\n Akun dengan alasan apapun.\n \n \n Syarat dan Ketentuan pengaksesan dan penggunaan Layanan adalah\n sebagai berikut:\n \n \n 1. UMUM\n

\n Layanan Nutricia Medical ini adalah Layanan resmi yang dimiliki dan\n dikelola oleh PT Sarihusada Generasi Mahardhika, berkedudukan di\n Yogyakarta, PT Nutricia Indonesia Sejahtera, berkedudukan di Jakarta\n Timur , selanjutnya secara bersama-sama disebut “Danone” atau\n “Kami”) serta Distributor kami Tigaraksa.\n

\n Layanan ini dapat digunakan oleh Pengguna untuk mendapatkan\n informasi produk Danone melalui Careline dan melakukan pemesanan\n produk Danone ke pihak Distributor bagi bidan.\n

\n Ketentuan lebih lanjut mengenai persyaratan Pengguna mengacu kepada\n ketentuan 4 Syarat dan Ketentuan ini.\n

\n Syarat dan Ketentuan Layanan ini merupakan bagian tidak terpisahkan\n dengan Kebijakan dan peraturan lainnya yang dimuat pada Layanan.\n

\n

\n 2. Tentang Layanan\n

\n Layanan ini merupakan sebuah layanan dengan fitur otomatis untuk\n menjawab pesan pengguna melalui media komunikasi Nomor WhatsApp\n Business kami. Layanan ini membantu Pengguna untuk melakukan\n pencarian produk bagi anak berkebutuhan khusus di apotek terdekat\n dalam jaringan distribusi produk Danone.\n

\n Adapun fungsi utama Layanan ini adalah sebagai berikut:\n

\n
    \n
  1. \n Memberikan produk informasi melalui Careline yang akan\n menghubungi Anda melalui media komunikasi WhatsApp Business\n
  2. \n
  3. \n Membantu proses pemesanan produk Danone ke pihak distributor\n Tigaraksadengan menggunakan fitur otomatis (“Chatbot”) melalui\n media komunikasi nomor WhatsApp Business.\n
  4. \n
  5. \n Mengolah data pemesanan produk dari Chatbot ke pihak Distributor\n ke Apotek untuk mengonfirmasi pesanan berdasarkan ketersediaan\n stok\n
  6. \n
  7. \n Menginfokan status pemesanan ketika produk sudah dikonfirmasi,\n Anda akan membayar ke nomor rekening yang tercantum serta akan\n dikirimkan produk sesuai ketersediaan yang ada.\n
  8. \n
\n

\n

\n Cara mendapatkan dan mengakses Layanan ini\n

\n
    \n
  1. \n Layanan digunakan oleh Pengguna melalui media komunikasi Whats\n App yang telah di unduh terlebih dahulu ke dalam Smartphone\n pengguna.\n
  2. \n
  3. \n Pengguna akan dihubungi melalui WhatsApp Business oleh Careline\n untuk diberikan produk informasi dan melakukan proses pemesanan\n produk yang akan dijawab otomatis oleh Chatbot. dan/atau\n Pengguna bisa menambahkan secara langsung nomor Whats App\n Business Danone ke dalam daftar kontak What’s App pengguna.\n
  4. \n
  5. \n Pengguna wajib untuk membaca dan menyetujui Syarat dan Ketentuan\n serta Pernyataan Privasi sebelum menggunakan Layanan ini.\n
  6. \n
\n

\n

\n 3. Whats app Akun dan Keamanan AKUN\n

\n Syarat dan Ketentuan serta Kebijakan Privasi terkait dengan\n penggunaan Whatsapp mohon merujuk ke:\n

\n https://www.whatsapp.com/legal/ https://www.whatsapp.com/privacy\n

\n Anda sebagai Pengguna sepenuhnya bertanggung jawab untuk semua\n kegiatan yang dilakukan dengan menggunakan Whats App Akun Anda,\n bahkan bila kegiatan atau penggunaan tersebut tidak dilakukan oleh\n Anda. Danone tidak akan bertanggung jawab untuk setiap kerugian atau\n kerusakan yang timbul dari penggunaan tanpa izin atas Whats App Akun\n Anda atau kegagalan Anda untuk mematuhi ketentuan ini.\n

\n Anda setuju bahwa untuk alasan apapun atas kebijakan Danone sendiri\n dan dengan ataupun tanpa pemberitahuan atau kebijakan kepada Anda\n atau pihak ketiga mana pun, Danone dapat mengakhiri Layanan untuk\n Akun Pengguna Anda serta menghapus atau membuang setiap konten yang\n berkaitan dengan Akun Pengguna Anda dari Layanan. Dasar untuk\n pengakhiran tersebut dapat termasuk, tetapi tidak terbatas pada :\n (a) tidak aktif dalam jangka waktu lama; (b) pelanggaran terhadap\n ketentuan Syarat dan Ketentuan ini; (c) adanya pemalsuan, perilaku\n yang ilegal, menipu, melecehkan, memfitnah, mengancam dan/atau kasar\n dan/atau pelanggaran hukum lainnya; (d) memiliki beberapa akun\n pengguna untuk alasan yang tidak sah; dan/atau (e) perilaku yang\n merugikan Pengguna lain, pihak ketiga, atau kepentingan bisnis\n Danone. Penggunaan Akun untuk tujuan yang ilegal, menipu,\n melecehkan, memfitnah, mengancam dan/atau pelanggaran hukum lainnya,\n dapat dirujuk ke pihak penegak hukum tanpa pemberitahuan kepada\n Anda. Apabila permasalahan hukum timbul atau tindakan penegakan\n hukum dilakukan dalam kaitan dengan Akun anda atau penggunaan\n layanan pada Layanan oleh Anda untuk alasan apapun, dapat mengakhiri\n Akun Anda dengan segera dengan atau tanpa pemberitahuan.\n

\n Anda dapat meminta Danone untuk menghapus Akun atau Nomor Handphone\n Anda dengan memberi tahu Danone tentang niatan tersebut. Info lebih\n lanjut, kontak ke Bagian Bantuan dan Dukungan.\n

\n

\n 4. Syarat dan Ketentuan PENGGUNA\n

\n
    \n
  1. \n Anda sebagai Pengguna dengan ini menyatakan bahwa Anda adalah\n orang yang cakap dan mampu untuk mengikatkan dirinya dalam\n sebuah perjanjian yang sah menurut hukum dan telah membaca\n seluruh Syarat dan Ketentuan.\n
  2. \n
  3. \n Pengunduhan Whats App Layanan dan biaya pengiriman pesan ke\n nomor Whats App Business Danone oleh Pengguna dilakukan atas\n biaya Pengguna sendiri.\n
  4. \n
  5. \n HN Careline: Pengguna memahami sepenuhnya bahwa Layanan ini\n hanya memberikan informasi produk Danone\n
  6. \n
  7. \n Chatbot : Pengguna memahami sepenuhnya bahwa Layanan ini\n menggunakan balasan otomatis, untuk membantu merekap dan\n memproses pesanan produk Anda. Produk yang dipesan akan\n dikonfirmasi ketersediaan produknya H+1 oleh pihak Distributor\n Tigaraksa dan setelah pembayaran akan dikirimkan oleh pihak\n Distributor Tigaraksa\n
  8. \n
  9. \n Pengguna akan diminta untuk memberikan informasi pribadi\n Pengguna yang dapat meliputi data-data sebagai berikut atau\n data-data lain yang diperlukan dalam penyelenggaran Layanan yang\n berkaitan dengan layanan ini:\n
      \n
    • Nama,
    • \n
    • Nomor WhatsApp,
    • \n
    • Lokasi pengguna
    • \n
    \n
  10. \n
  11. \n Pengguna harus menyampaikan kepada Danone, informasi yang\n akurat, lengkap dan tidak menyesatkan.\n
  12. \n
  13. \n Danone berhak meminta dokumentasi untuk melakukan verifikasi\n informasi yang Pengguna berikan. Jika Pengguna memilih untuk\n tidak mengirimkan informasi pribadi Pengguna kepada Danone atau\n kemudian menarik persetujuan menggunakan informasi pribadi\n Pengguna, maka hal itu dapat menyebabkan Danone tidak dapat\n menyediakan Layanan kepada Pengguna.\n
  14. \n
  15. \n Danone hanya akan menggunakan nama Pengguna dan informasi yang\n berhubungan dengan Pengguna sebagaimana yang dinyatakan dalam\n kebijakan privasi pada Syarat dan Ketentuan ini. Danone hanya\n akan mengumpulkan informasi yang diperlukan dan relevan dengan\n transaksi antara Danone dengan Pengguna.\n
  16. \n
  17. \n Jika Pengguna memiliki pertanyaan atau keluhan mengenai Layanan\n ini atau produk lain silahkan menghubungi melalui Careline\n Danone.\n
  18. \n
  19. \n Pengguna bertanggung jawab atas semua kegiatan yang terjadi\n dengan penggunaan nama dan akun miliknya. Pengguna juga\n bertanggung jawab untuk segera memberitahu Danone bila nama\n dan/atau akun Pengguna telah digunakan secara tidak sah oleh\n pihak lain atau terjadi pelanggaran keamanan lainnya.\n
  20. \n
  21. \n Pengguna dilarang untuk menyalahgunakan Layanan ini dan/atau\n setiap akses terhadap Layanan ini untuk hal-hal yang dilarang\n sesuai dengan kebijakan dan peraturan yang berlaku di Republik\n Indonesia.\n
  22. \n
  23. \n Kami berhak sewaktu-waktu meminta Pengguna untuk memperbaiki\n akun Pengguna jika diperlukan demi keamanan akses.\n
  24. \n
  25. \n Dengan memberikan data diri Anda sebagaimana dimaksud dalam\n Angka 4 (d) Syarat dan Ketentuan ini (“Informasi Pribadi”)\n melalui Layanan, Anda sebagai Pengguna memberikan persetujuan\n kepada Danone untuk:\n
      \n
    1. \n Menyimpan dan menggunakan Informasi Pribadi, termasuk namun\n tidak terbatas pada : nama, alamat, telepon/No Handphone,\n Lokasi, dan sebagainya untuk memverifikasi data diri Anda,\n untuk keperluan Layanan ini dan/atau menghubungi Anda untuk\n memberikan informasi dan tips-tips terkait Produk.\n
    2. \n
    3. \n Mengirimkan informasi kepada Anda dengan cara apapun (surat,\n email, SMS, telepon, dan lain-lain) komunikasi yang\n berhubungan dengan Produk, termasuk namun tidak terbatas\n pada informasi dan materi pada peluncuran merek atau produk,\n perubahan kemasan produk, kegiatan pemasaran dan/atau\n peraturan Produk Danone, sepanjang diizinkan oleh hukum yang\n berlaku;\n
    4. \n
    5. \n Memproses Informasi Pribadi di negara selain negara di mana\n Anda mendaftar (sebagai contoh, lokasi database di satu\n negara dan mengakses database jarak jauh dari negara lain);\n
    6. \n
    7. \n Mengungkapkan Informasi Pribadi kepada penyedia layanan\n Danone untuk tujuan di atas dan/atau afiliasi Danone\n dan/atau pihak ketiga yang ditunjuk oleh Danone untuk\n melakukan hal-hal di atas untuk tujuannya sendiri serta\n (jika diperlukan oleh hukum) kepada pihak yang berwenang;\n dan/atau\n
    8. \n
    9. \n Menggunakan tanggapan, komentar, gambar, cerita dan/atau\n tulisan yang Anda kirimkan ke Layanan, jika ada, untuk\n tujuan apapun, termasuk namun tidak terbatas untuk materi\n komunikasi atau promosi internal dan eksternal Danone. n.\n Informasi Pribadi yang diberikan sukarela oleh Pengguna\n kepada Danone melalui Layanan ini, mungkin akan dipergunakan\n oleh Danone, baik secara langsung maupun melalui pihak\n ketiga, guna menghubungi Pengguna untuk menawarkan produk\n atau layanan terpilih, kecuali Pengguna menyatakan tidak\n bersedia menerima penawaran pada formulir langganan.\n Informasi tersebut mungkin juga dipakai secara internal di\n Indonesia untuk menilai fungsi Layanan ini dan kebutuhan\n Pengguna.\n
    10. \n
    \n
  26. \n
\n 5. PENGGUNAAN LAYANAN\n

\n
    \n
  1. \n Layanan ini beserta seluruh isi/konten atau materi di dalamnya\n hanya boleh digunakan untuk keperluan pribadi Pengguna, bukan\n untuk tujuan komersial.\n
  2. \n
  3. \n Pengguna tidak dapat mendistribusikan, memodifikasi,\n mentransmisikan, me-repost atau menggunakan materi dalam Layanan\n ini untuk tujuan umum atau komersial tanpa persetujuan tertulis\n terlebih dahulu dari Danone. Semua hak cipta dan hak kepemilikan\n lainnya dalam materi yang diunduh (downloaded material) atau di\n capture harus dijaga dan dipertahankan.\n
  4. \n
  5. \n Penggunaan Layanan ini adalah dengan risiko pribadi\n Pengguna. Danone atau pihak lain yang terlibat dalam penciptaan,\n pembuatan dan/atau pengelolaan Layanan ini tidak bertanggung\n jawab atas segala kerugian langsung, tidak disengaja,\n konsekuensial, tidak langsung atau kerugian yang diakibatkan\n oleh akses dan penggunaan Layanan ini, termasuk namun tidak\n terbatas pada: kerusakan, atau virus yang mungkin menginfeksi\n peralatan komputer atau mobile Pengguna. Tanpa membatasi\n ketentuan sebelumnya, segala sesuatu pada Layanan ini disediakan\n untuk Pengguna 'apa adanya' tanpa jaminan isi atau jaminan\n keberhargaannya serta kesesuaiannya untuk tujuan tertentu, atau\n tidak ada jaminan bebas dari pelanggaran hukum.\n
  6. \n
\n 6. HAK KEKAYAAN INTELEKTUAL\n

\n
    \n
  1. \n Semua isi dari Layanan ini, termasuk namun tidak terbatas pada\n teks, foto, grafik, materi audio, perangkat lunak maupun bentuk\n lainnya adalah hak cipta milik Danone dan/atau afiliasinya\n dan/atau pihak ketiga lain yang ditunjuk oleh Danone, kecuali\n dinyatakan lain, dan tidak dapat digunakan tanpa izin tertulis\n dari Danone atau pemilik hak tersebut. Gambar yang ditampilkan\n di Layanan merupakan milik, atau digunakan harus dengan izin\n oleh Danone. Penggunaan dan/atau modifikasi pada gambar-gambar\n tersebut oleh Anda sangat dilarang. Penggunaan yang tidak sah\n dari gambar dapat melanggar hak cipta, merek, privasi dan/atau\n peraturan yang berlaku dapat dikenakan sanksi hukum sesuai\n ketentuan yang berlaku. Konten atau materi yang terkandung di\n dalam Layanan ini dapat diakses oleh Anda sesuai syarat dan\n ketentuan yang berlaku untuk Pengguna.\n
  2. \n
  3. \n Sepanjang relevan, pada saat Pengguna mengirimkan atau menulis\n materi ke atau pada Layanan ini, Pengguna telah setuju untuk\n memberikan kepada Danone hak non-eksklusif, berlaku di seluruh\n dunia, bebas dari kewajiban atas royalti, untuk menggunakan,\n mereproduksi, mengubah, mengadaptasi, menerbitkan,\n menerjemahkan, menciptakan karya turunan, memajang dan/atau\n menyebarkan materi tersebut ke seluruh dunia melalui Layanan\n ini, atau dengan cara yang lain tanpa ada kewajiban apa pun\n terhadap Pengguna.\n
  4. \n
  5. \n Semua isi dalam Layanan ini tidak dapat ditafsirkan sebagai\n izin, dengan implikasi, larangan atau lainnya, atas lisensi\n dan/atau hak atas merek dagang Danone, tanpa adanya izin\n tertulis dari Danone. Penggunaan terhadap Merek Dagang dan isi\n Layanan ini oleh Pengguna kecuali yang telah ditentukan dalam\n Syarat dan Ketentuan ini, adalah dilarang. Danone akan\n menginformasikan kepada Pengguna bahwa Danone akan\n mempertahankan hak kekayaan intelektualnya dalam Layanan ini\n beserta isinya sampai sejauh yang diperbolehkan oleh hukum,\n termasuk mengupayakan sanksi hukum.\n
  6. \n
  7. \n Layanan ini mungkin memuat link ke website atau Layanan yang\n lain. Kami tidak bertanggung jawab atas isi website atau Layanan\n lain atau ulasan yang sedang berlangsung pada situs web atau\n Layanan lain tersebut. Terdapatnya link ke website atau Layanan\n lain tidak menyiratkan dukungan Kami atas isinya. Jika Anda\n mengikuti link ke situs website atau Layanan lain, risiko\n ditanggung oleh Pengguna secara pribadi. Penautan ke link\n pengunduhan Layanan ini, dengan cara apa pun, tidak\n diperbolehkan.\n
  8. \n
  9. \n Kami tidak menyatakan atau menjamin bahwa Layanan ini, atau\n media lain seperti website manapun yang terhubung\n dengan Layanan, dapat diakses kapan saja, atau akses tersebut\n tidak terputus atau bebas kesalahan\n
  10. \n
  11. \n Kami berhak mengubah atau menghapus materi pada Layanan\n sewaktu-waktu berdasarkan pertimbangan Kami\n
  12. \n
  13. \n Kami dapat sewaktu-waktu mengubah Syarat dan Ketentuan ini\n dengan memperbarui postingan pada Layanan. Dengan mengakses\n Layanan, Anda secara hukum terikat pada revisi tersebut, itulah\n sebabnya akses Layanan ini secara berkala untuk melihat Syarat\n dan Ketentuan yang baru.\n
  14. \n
\n 7. Bantuan dan Dukungan\n

\n Pengguna dapat menghubungi Team Leader masing-masing untuk untuk\n bantuan dan dukungan berkenaan dengan penggunaan Layanan ini.\n Pengguna dapat menghubungi tim Careline kami di nomor berikut : TBC\n

\n Sanggahan (Disclaimer)\n

\n Kami berupaya menyajikan informasi secara lengkap dan akurat.\n Namun, Kami tidak memberikan jaminan bahwa informasi dalam Layanan\n ini benar-benar lengkap, akurat, dan dapat dipercaya. Kami juga\n tidak memberikan jaminan bahwa akses ke dalam Layanan ini bebas\n hambatan, bebas kesalahan, bebas virus, atau Layanan ini\n aman. Kami tidak bertanggung jawab atas segala kerugian yang timbul\n karena tindakan yang berkaitan dengan penggunaan informasi yang\n disajikan. Risiko yang timbul karena kepercayaan Pengguna atas\n informasi yang ditampilkan dalam Layanan ini akan menjadi tanggung\n jawab Pengguna pribadi.\n

\n ****\n

\n (diubah terakhir kali pada 22 April 2021)\n \n
\n
\n
\n );\n};\n\nexport default TermsCondition;\n","import { makeStyles } from \"@material-ui/styles\";\n\nexport default makeStyles(theme => ({\n root: {\n display: \"flex\",\n maxWidth: \"100vw\",\n overflowX: \"hidden\",\n },\n content: {\n flexGrow: 1,\n padding: theme.spacing(3),\n width: `calc(100vw - 240px)`,\n minHeight: \"100vh\",\n },\n contentShift: {\n width: `calc(100vw - ${240 + theme.spacing(6)}px)`,\n transition: theme.transitions.create([\"width\", \"margin\"], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n fakeToolbar: {\n ...theme.mixins.toolbar,\n },\n link: {\n '&:not(:first-child)': {\n paddingLeft: 15\n }\n }\n}));\n","import { makeStyles } from \"@material-ui/styles\";\nimport { fade } from \"@material-ui/core/styles/colorManipulator\";\n\nexport default makeStyles(theme => ({\n logotype: {\n color: \"white\",\n marginLeft: theme.spacing(2.5),\n marginRight: theme.spacing(2.5),\n fontWeight: 500,\n fontSize: 18,\n whiteSpace: \"nowrap\",\n [theme.breakpoints.down(\"xs\")]: {\n display: \"none\",\n },\n },\n appBar: {\n width: \"100vw\",\n zIndex: theme.zIndex.drawer + 1,\n transition: theme.transitions.create([\"margin\"], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n },\n toolbar: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n },\n hide: {\n display: \"none\",\n },\n grow: {\n flexGrow: 1,\n },\n search: {\n position: \"relative\",\n borderRadius: 25,\n paddingLeft: theme.spacing(2.5),\n width: 36,\n backgroundColor: fade(theme.palette.common.black, 0),\n transition: theme.transitions.create([\"background-color\", \"width\"]),\n \"&:hover\": {\n cursor: \"pointer\",\n backgroundColor: fade(theme.palette.common.black, 0.08),\n },\n },\n searchFocused: {\n backgroundColor: fade(theme.palette.common.black, 0.08),\n width: \"100%\",\n [theme.breakpoints.up(\"md\")]: {\n width: 250,\n },\n },\n searchIcon: {\n width: 36,\n right: 0,\n height: \"100%\",\n position: \"absolute\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n transition: theme.transitions.create(\"right\"),\n \"&:hover\": {\n cursor: \"pointer\",\n },\n },\n searchIconOpened: {\n right: theme.spacing(1.25),\n },\n inputRoot: {\n color: \"inherit\",\n width: \"100%\",\n },\n inputInput: {\n height: 36,\n padding: 0,\n paddingRight: 36 + theme.spacing(1.25),\n width: \"100%\",\n },\n messageContent: {\n display: \"flex\",\n flexDirection: \"column\",\n },\n headerMenu: {\n marginTop: theme.spacing(7),\n },\n headerMenuList: {\n display: \"flex\",\n flexDirection: \"column\",\n },\n headerMenuItem: {\n \"&:hover, &:focus\": {\n backgroundColor: theme.palette.background.light,\n // color: \"white\",\n },\n },\n headerMenuButton: {\n marginLeft: theme.spacing(2),\n padding: theme.spacing(0.5),\n },\n headerMenuButtonSandwich: {\n marginLeft: 9,\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: 0\n },\n padding: theme.spacing(0.5),\n },\n headerMenuButtonCollapse: {\n marginRight: theme.spacing(2),\n },\n headerIcon: {\n fontSize: 28,\n color: \"rgba(255, 255, 255, 0.35)\",\n },\n headerIconCollapse: {\n color: \"white\",\n },\n profileMenu: {\n minWidth: 265,\n },\n profileMenuUser: {\n display: \"flex\",\n flexDirection: \"column\",\n padding: theme.spacing(2),\n },\n profileMenuItem: {\n color: theme.palette.text.hint,\n },\n profileMenuIcon: {\n marginRight: theme.spacing(2),\n color: theme.palette.text.hint,\n '&:hover': {\n color: theme.palette.primary.main,\n }\n },\n profileMenuLink: {\n fontSize: 16,\n textDecoration: \"none\",\n \"&:hover\": {\n cursor: \"pointer\",\n },\n },\n messageNotification: {\n height: \"auto\",\n display: \"flex\",\n alignItems: \"center\",\n \"&:hover, &:focus\": {\n backgroundColor: theme.palette.background.light,\n },\n },\n messageNotificationSide: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n marginRight: theme.spacing(2),\n },\n messageNotificationBodySide: {\n alignItems: \"flex-start\",\n marginRight: 0,\n },\n sendMessageButton: {\n margin: theme.spacing(4),\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n textTransform: \"none\",\n },\n sendButtonIcon: {\n marginLeft: theme.spacing(2),\n },\n purchaseBtn: {\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n },\n marginRight: theme.spacing(3)\n }\n}));\n","import React from \"react\";\n\nconst LayoutStateContext = React.createContext();\nconst LayoutDispatchContext = React.createContext();\n\nfunction layoutReducer(state, action) {\n switch (action.type) {\n case \"TOGGLE_SIDEBAR\":\n return { ...state, isSidebarOpened: !state.isSidebarOpened };\n default: {\n throw new Error(`Unhandled action type: ${action.type}`);\n }\n }\n}\n\nfunction LayoutProvider({ children }) {\n const [state, dispatch] = React.useReducer(layoutReducer, {\n isSidebarOpened: true,\n });\n return (\n \n \n {children}\n \n \n );\n}\n\nfunction useLayoutState() {\n const context = React.useContext(LayoutStateContext);\n if (context === undefined) {\n throw new Error(\"useLayoutState must be used within a LayoutProvider\");\n }\n return context;\n}\n\nfunction useLayoutDispatch() {\n const context = React.useContext(LayoutDispatchContext);\n if (context === undefined) {\n throw new Error(\"useLayoutDispatch must be used within a LayoutProvider\");\n }\n return context;\n}\n\nexport { LayoutProvider, useLayoutState, useLayoutDispatch, toggleSidebar };\n\nfunction toggleSidebar(dispatch) {\n dispatch({\n type: \"TOGGLE_SIDEBAR\",\n });\n}\n","import React, { useState } from \"react\";\nimport { AppBar, Toolbar, IconButton, Menu, MenuItem } from \"@material-ui/core\";\nimport {\n Menu as MenuIcon,\n Person as AccountIcon,\n ArrowBack as ArrowBackIcon,\n} from \"@material-ui/icons\";\nimport classNames from \"classnames\";\n\n// styles\nimport useStyles from \"./styles\";\n\n// context\nimport {\n useLayoutState,\n useLayoutDispatch,\n toggleSidebar,\n} from \"../../context/LayoutContext\";\nimport { Typography } from \"@material-ui/core\";\nimport { useAuth } from \"../../context/AuthContext\";\n\nexport default function Header(props) {\n const classes = useStyles();\n\n // global\n const layoutState = useLayoutState();\n const layoutDispatch = useLayoutDispatch();\n\n // local\n const [profileMenu, setProfileMenu] = useState(null);\n\n const { logOut } = useAuth();\n\n const user = localStorage.getItem(\"user\");\n\n return (\n \n \n toggleSidebar(layoutDispatch)}\n className={classNames(\n classes.headerMenuButtonSandwich,\n classes.headerMenuButtonCollapse\n )}\n >\n {layoutState.isSidebarOpened ? (\n \n ) : (\n \n )}\n \n \n GAIA\n \n
\n setProfileMenu(e.currentTarget)}\n >\n \n \n setProfileMenu(null)}\n className={classes.headerMenu}\n classes={{ paper: classes.profileMenu }}\n disableAutoFocusItem\n >\n
\n \n {user}\n \n
\n \n Profile\n \n
\n \n Sign Out\n \n
\n \n \n \n );\n}\n","import { makeStyles } from \"@material-ui/styles\";\n\nconst drawerWidth = 240;\n\nexport default makeStyles(theme => ({\n menuButton: {\n marginLeft: 12,\n marginRight: 36,\n },\n hide: {\n display: \"none\",\n },\n drawer: {\n width: drawerWidth,\n flexShrink: 0,\n whiteSpace: \"nowrap\",\n },\n drawerOpen: {\n width: drawerWidth,\n transition: theme.transitions.create(\"width\", {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n drawerClose: {\n transition: theme.transitions.create(\"width\", {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n overflowX: \"hidden\",\n width: theme.spacing(7) + 40,\n [theme.breakpoints.down(\"sm\")]: {\n width: drawerWidth,\n },\n },\n toolbar: {\n ...theme.mixins.toolbar,\n [theme.breakpoints.down(\"sm\")]: {\n display: \"none\",\n },\n },\n content: {\n flexGrow: 1,\n padding: theme.spacing(3),\n },\n /* sidebarList: {\n marginTop: theme.spacing(6),\n }, */\n mobileBackButton: {\n marginTop: theme.spacing(0.5),\n marginLeft: 18,\n [theme.breakpoints.only(\"sm\")]: {\n marginTop: theme.spacing(0.625),\n },\n [theme.breakpoints.up(\"md\")]: {\n display: \"none\",\n },\n },\n}));\n","import { makeStyles } from \"@material-ui/styles\";\n\nexport default makeStyles(theme => ({\n link: {\n textDecoration: \"none\",\n \"&:hover, &:focus\": {\n backgroundColor: theme.palette.background.light,\n },\n },\n externalLink: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n textDecoration: 'none'\n },\n linkActive: {\n backgroundColor: theme.palette.background.light,\n },\n linkNested: {\n paddingLeft: 0,\n \"&:hover, &:focus\": {\n backgroundColor: \"#FFFFFF\",\n },\n },\n linkIcon: {\n marginRight: theme.spacing(1),\n color: theme.palette.text.secondary + \"99\",\n transition: theme.transitions.create(\"color\"),\n width: 24,\n display: \"flex\",\n justifyContent: \"center\",\n },\n linkIconActive: {\n color: theme.palette.primary.main,\n },\n linkText: {\n padding: 0,\n color: theme.palette.text.secondary + \"CC\",\n transition: theme.transitions.create([\"opacity\", \"color\"]),\n fontSize: 16,\n },\n linkTextActive: {\n color: theme.palette.text.primary,\n },\n linkTextHidden: {\n opacity: 0,\n },\n nestedList: {\n paddingLeft: theme.spacing(2) + 30,\n },\n sectionTitle: {\n marginLeft: theme.spacing(4.5),\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n },\n divider: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(4),\n height: 1,\n backgroundColor: \"#D8D8D880\",\n },\n}));\n","import React from \"react\";\nimport { makeStyles, useTheme } from \"@material-ui/styles\";\nimport classnames from \"classnames\";\n\n// styles\nconst useStyles = makeStyles((theme) => ({\n dotBase: {\n width: 8,\n height: 8,\n backgroundColor: theme.palette.text.hint,\n borderRadius: \"50%\",\n transition: theme.transitions.create(\"background-color\"),\n },\n dotSmall: {\n width: 5,\n height: 5,\n },\n dotLarge: {\n width: 11,\n height: 11,\n },\n}));\n\nexport default function Dot({ size, color }) {\n const classes = useStyles();\n const theme = useTheme();\n\n return (\n \n );\n}\n","import React, { useState } from \"react\";\nimport {\n Collapse,\n Divider,\n List,\n ListItem,\n ListItemIcon,\n ListItemText,\n Typography,\n} from \"@material-ui/core\";\nimport { Inbox as InboxIcon } from \"@material-ui/icons\";\nimport { Link } from \"react-router-dom\";\nimport classnames from \"classnames\";\n\n// styles\nimport useStyles from \"./styles\";\n\n// components\nimport Dot from \"../Dot\";\n\nexport default function SidebarLink({\n link,\n icon,\n label,\n children,\n location,\n isSidebarOpened,\n nested,\n type,\n}) {\n const classes = useStyles();\n\n // local\n const [isOpen, setIsOpen] = useState(false);\n const isLinkActive =\n link &&\n (location.pathname === link || location.pathname.indexOf(link) !== -1);\n\n if (type === \"title\")\n return (\n \n {label}\n \n );\n\n if (type === \"divider\") return ;\n if (link && link.includes(\"http\")) {\n return (\n \n \n \n {nested ? : icon}\n \n \n \n \n );\n }\n if (!children)\n return (\n \n \n {nested ? : icon}\n \n \n \n );\n\n return (\n <>\n \n \n {icon ? icon : }\n \n \n \n {children && (\n \n \n {children.map((childrenLink) => (\n \n ))}\n \n \n )}\n \n );\n\n function toggleCollapse(e) {\n if (isSidebarOpened) {\n e.preventDefault();\n setIsOpen(!isOpen);\n }\n }\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Drawer, IconButton, List } from \"@material-ui/core\";\nimport { ArrowBack as ArrowBackIcon } from \"@material-ui/icons\";\nimport { useTheme } from \"@material-ui/styles\";\nimport { withRouter } from \"react-router-dom\";\nimport classNames from \"classnames\";\nimport PeopleAltSharpIcon from \"@material-ui/icons/PeopleAltSharp\";\n// styles\nimport useStyles from \"./styles\";\n\n// components\nimport SidebarLink from \"./components/SidebarLink/SidebarLink\";\n\n// context\nimport {\n useLayoutState,\n useLayoutDispatch,\n toggleSidebar,\n} from \"../../context/LayoutContext\";\n\nconst structure = [\n {\n id: 2,\n label: \"Customers\",\n link: \"/\",\n icon: ,\n },\n];\n\nfunction Sidebar({ location }) {\n const classes = useStyles();\n const theme = useTheme();\n\n // global\n const { isSidebarOpened } = useLayoutState();\n const layoutDispatch = useLayoutDispatch();\n\n // local\n const [isPermanent, setPermanent] = useState(true);\n\n useEffect(function () {\n window.addEventListener(\"resize\", handleWindowWidthChange);\n handleWindowWidthChange();\n return function cleanup() {\n window.removeEventListener(\"resize\", handleWindowWidthChange);\n };\n });\n\n return (\n \n
\n
\n toggleSidebar(layoutDispatch)}>\n \n \n
\n \n {structure.map((link) => (\n \n ))}\n \n \n );\n function handleWindowWidthChange() {\n const windowWidth = window.innerWidth;\n const breakpointWidth = theme.breakpoints.values.md;\n const isSmallScreen = windowWidth < breakpointWidth;\n\n if (isSmallScreen && isPermanent) {\n setPermanent(false);\n } else if (!isSmallScreen && !isPermanent) {\n setPermanent(true);\n }\n }\n}\n\nexport default withRouter(Sidebar);\n","import { makeStyles } from \"@material-ui/styles\";\n\nexport default makeStyles(theme => ({\n pageTitleContainer: {\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: theme.spacing(4),\n marginTop: theme.spacing(5),\n },\n typo: {\n color: theme.palette.text.hint,\n },\n button: {\n boxShadow: theme.customShadows.widget,\n textTransform: \"none\",\n \"&:active\": {\n boxShadow: theme.customShadows.widgetWide,\n },\n },\n}));\n","import { Typography } from \"@material-ui/core\";\nimport React from \"react\";\n\n// styles\nimport useStyles from \"./styles\";\n\nexport default function PageTitle(props) {\n const classes = useStyles();\n\n return (\n
\n \n {props.title}\n \n {props.button && props.button}\n
\n );\n}\n","/* eslint-disable operator-linebreak */\nimport React, { useEffect, useState } from \"react\";\nimport CreateSharpIcon from \"@material-ui/icons/CreateSharp\";\nimport SendSharpIcon from \"@material-ui/icons/SendSharp\";\nimport Button from \"@material-ui/core/Button\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport TextField from \"@material-ui/core/TextField\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport { useQueryClient, useMutation, useQuery } from \"react-query\";\nimport { useSnackbar } from \"notistack\";\nimport { Box, IconButton, Tab, CircularProgress } from \"@material-ui/core\";\nimport { Autocomplete, TabContext, TabList, TabPanel } from \"@material-ui/lab\";\nimport { Typography } from \"@material-ui/core\";\nimport { Chip } from \"@material-ui/core\";\nimport axios from \"axios\";\n\nconst AddItrDialog = (props) => {\n let initialState = {\n productName: [],\n username: \"\",\n phoneNumber: \"\",\n hospitalid: \"\",\n };\n\n const { username, phoneNumber, productName, hospitalid } = props.data;\n\n const [recomend, setRecomend] = useState(initialState);\n const [products, setProducts] = useState([]);\n const [userInfo, setUserInfo] = useState({\n hospitalid: \"\",\n username: \"\",\n customerId: \"\",\n phoneNumber: \"\",\n });\n const [open, setOpen] = useState(false);\n const queryClient = useQueryClient();\n const { enqueueSnackbar } = useSnackbar();\n\n useEffect(() => {\n setUserInfo({\n hospitalid: hospitalid,\n phoneNumber: phoneNumber,\n username: username,\n customerId: phoneNumber,\n });\n }, [hospitalid, username, productName, phoneNumber]);\n\n useEffect(() => {\n setRecomend({\n username,\n hospitalid,\n productName,\n phoneNumber,\n });\n }, [username, hospitalid, productName, phoneNumber]);\n\n const handleClickOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setProducts([]);\n setOpen(false);\n };\n\n const handleAdd = () => {\n try {\n // mutateChangeUserInfo(userInfo)\n // changeUserInfo()\n mutateRecomend(recomend);\n setRecomend(initialState);\n handleClose();\n } catch (error) {\n console.log(`Handle Add Error: ${error}`);\n }\n };\n\n const handleChangeUserInfo = () => {\n try {\n mutateChangeUserInfo(userInfo);\n } catch (error) {\n console.log(`Handle Change User Info Error: ${error}`);\n }\n };\n\n const handleChange = (value) => {\n let productName = value?.name;\n let productId = value?.id;\n\n console.log(value);\n console.log(products);\n\n if (!productId) return;\n if (products.find((item) => item.productId === Number(productId))) return;\n\n setProducts((old) => old.concat({ productName, productId }));\n };\n\n const getData = (value) => {\n return queryClient.invalidateQueries(\"getAllData\");\n };\n\n const putItrData = async () => {\n const response = await fetch(\n `${process.env.REACT_APP_BACKEND_URL}/api/itr/update`,\n {\n method: \"PUT\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n body: JSON.stringify({ username: recomend.phoneNumber, products }),\n }\n );\n\n const data = await response.json();\n\n return data;\n };\n\n const changeUserInfo = async () => {\n console.log(userInfo);\n try {\n const getData = await axios.put(\n `${process.env.REACT_APP_BACKEND_URL}/api/user/update`,\n JSON.stringify(userInfo),\n {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n console.log(getData);\n mutateGetData();\n enqueueSnackbar(\"User info updated\", { variant: \"success\" });\n handleClose();\n return getData;\n } catch (error) {\n enqueueSnackbar(error.response.data.msg, { variant: \"error\" });\n console.log(error);\n return error;\n }\n\n // fetch(\n // `http://localhost:8080/api/user/update`,\n // {\n // method: \"PUT\",\n // headers: {\n // \"Content-Type\": \"application/json\",\n // },\n // body: JSON.stringify(userInfo)\n // }\n // ).then((response) => {\n // const data = response.json();\n // console.log(response)\n // return data\n // }).catch((error) => {\n // console.log(error)\n // return alert(error.response.json())\n // })\n };\n\n // const { mutate } = useMutation(changeUserInfo, {\n // onSuccess: () => {\n // enqueueSnackbar(\"User Info updated\", { variant: \"success\" })\n // },\n // onError: (e) => {\n // console.log(e)\n // }\n\n // })\n\n const { mutate: mutateRecomend, isLoading: isLoadingRecomend } = useMutation(\n putItrData,\n {\n onSuccess: () => {\n queryClient.invalidateQueries(\"getAllData\");\n enqueueSnackbar(\"Itr Added\", { variant: \"success\" });\n },\n }\n );\n\n const { mutate: mutateChangeUserInfo, isLoading: isLoadingChangeUserInfo } =\n useMutation(changeUserInfo, {\n onSuccess: () => {},\n onError: () => {},\n });\n\n const { mutate: mutateGetData, isLoading: isLoadingGetData } =\n useMutation(getData);\n\n const getAllProducts = async () => {\n const response = await fetch(\n `${process.env.REACT_APP_BACKEND_URL}/api/itr/products`,\n {\n method: \"GET\",\n }\n );\n\n const data = await response.json();\n\n return data.products;\n };\n\n const { data } = useQuery(\"getAllProducts\", getAllProducts);\n\n const [valueTabs, setValueTabs] = React.useState(\"User Info\");\n\n const handleChangeTabs = (event, newValue) => {\n setValueTabs(newValue);\n };\n\n return (\n
\n \n \n \n \n \n \n {isLoadingGetData ? (\n \n \n \n ) : (\n \n Produk Rekomendasi\n \n \n \n \n \n \n\n \n \n \n setUserInfo({ ...userInfo, username: e.target.value })\n }\n />\n {\n const value = e.target.value;\n setUserInfo({\n ...userInfo,\n phoneNumber: value,\n customerId: value,\n });\n }}\n // disabled\n />\n \n \n \n Produk yang sudah direkomendasi:\n \n\n {typeof recomend.productName !== \"undefined\" &&\n recomend.productName.map((product) => {\n const [productName] = product.split(\"|\");\n return (\n \n );\n })}\n\n {products.map((item) => (\n \n setProducts((olds) =>\n olds.filter((old) => old.productId !== item.productId)\n )\n }\n color=\"primary\"\n >\n ))}\n\n option.name}\n onChange={(_, newValue) => {\n handleChange(newValue);\n }}\n renderInput={(params) => (\n \n )}\n />\n \n \n \n \n \n \n Update\n \n \n \n \n \n }\n onClick={handleAdd}\n color=\"primary\"\n disabled={isLoadingRecomend}\n >\n {isLoadingRecomend ? \"Loading\" : \"Add\"}\n \n \n \n \n \n )}\n \n
\n );\n};\n\nexport default AddItrDialog;\n","import React from \"react\";\n\nimport FirstPageIcon from \"@material-ui/icons/FirstPage\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport KeyboardArrowLeft from \"@material-ui/icons/KeyboardArrowLeft\";\nimport KeyboardArrowRight from \"@material-ui/icons/KeyboardArrowRight\";\nimport LastPageIcon from \"@material-ui/icons/LastPage\";\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\nimport PropTypes from \"prop-types\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flexShrink: 0,\n marginLeft: theme.spacing(2.5),\n },\n}));\n\nconst TablePaginationActions = (props) => {\n const classes = useStyles();\n const theme = useTheme();\n const { count, page, rowsPerPage, onChangePage } = props;\n\n const handleFirstPageButtonClick = (event) => {\n onChangePage(event, 0);\n };\n\n const handleBackButtonClick = (event) => {\n onChangePage(event, page - 1);\n };\n\n const handleNextButtonClick = (event) => {\n onChangePage(event, page + 1);\n };\n\n const handleLastPageButtonClick = (event) => {\n onChangePage(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));\n };\n\n return (\n
\n \n {theme.direction === \"rtl\" ? : }\n \n \n {theme.direction === \"rtl\" ? (\n \n ) : (\n \n )}\n \n = Math.ceil(count / rowsPerPage) - 1}\n aria-label=\"next page\"\n >\n {theme.direction === \"rtl\" ? (\n \n ) : (\n \n )}\n \n = Math.ceil(count / rowsPerPage) - 1}\n aria-label=\"last page\"\n >\n {theme.direction === \"rtl\" ? : }\n \n
\n );\n};\n\nTablePaginationActions.propTypes = {\n count: PropTypes.number.isRequired,\n onChangePage: PropTypes.func.isRequired,\n page: PropTypes.number.isRequired,\n rowsPerPage: PropTypes.number.isRequired,\n};\n\nexport default TablePaginationActions;\n","import React from \"react\";\n\nimport InputBase from \"@material-ui/core/InputBase\";\nimport { fade, makeStyles } from \"@material-ui/core/styles\";\nimport PropTypes from \"prop-types\";\nimport SearchIcon from \"@material-ui/icons/Search\";\n\nconst useStyles = makeStyles((theme) => ({\n search: {\n position: \"relative\",\n borderRadius: theme.shape.borderRadius,\n backgroundColor: fade(theme.palette.common.white, 0.15),\n \"&:hover\": {\n backgroundColor: fade(theme.palette.common.white, 0.25),\n },\n marginRight: theme.spacing(2),\n marginLeft: 0,\n width: \"100%\",\n [theme.breakpoints.up(\"sm\")]: {\n marginLeft: theme.spacing(3),\n width: \"auto\",\n },\n },\n searchIcon: {\n width: theme.spacing(7),\n height: \"100%\",\n position: \"absolute\",\n pointerEvents: \"none\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n inputRoot: {\n color: \"inherit\",\n },\n inputInput: {\n padding: theme.spacing(1, 1, 1, 7),\n transition: theme.transitions.create(\"width\"),\n width: \"100%\",\n [theme.breakpoints.up(\"md\")]: {\n width: 200,\n },\n },\n}));\n\nconst GlobalFilter = ({\n preGlobalFilteredRows,\n globalFilter,\n setGlobalFilter,\n}) => {\n const classes = useStyles();\n const count = preGlobalFilteredRows.length;\n\n // Global filter only works with pagination from the first page.\n // This may not be a problem for server side pagination when\n // only the current page is downloaded.\n\n return (\n
\n
\n \n
\n {\n setGlobalFilter(e.target.value || undefined); // Set undefined to remove the filter entirely\n }}\n placeholder={`${count} records...`}\n classes={{\n root: classes.inputRoot,\n input: classes.inputInput,\n }}\n inputProps={{ \"aria-label\": \"search\" }}\n />\n
\n );\n};\n\nGlobalFilter.propTypes = {\n preGlobalFilteredRows: PropTypes.array.isRequired,\n globalFilter: PropTypes.string.isRequired,\n setGlobalFilter: PropTypes.func.isRequired,\n};\n\nexport default GlobalFilter;\n","import React from \"react\";\n\n// import AddUserDialog from \"./AddUserDialog\";\nimport clsx from \"clsx\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport GlobalFilter from \"./GlobalFilter\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport { lighten, makeStyles } from \"@material-ui/core/styles\";\nimport PropTypes from \"prop-types\";\nimport Toolbar from \"@material-ui/core/Toolbar\";\nimport Typography from \"@material-ui/core/Typography\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\n\nimport DateRangePicker from \"@mui/lab/DateRangePicker\";\nimport AdapterDateFns from \"@mui/lab/AdapterDateFns\";\nimport LocalizationProvider from \"@mui/lab/LocalizationProvider\";\nimport { Box, Button, TextField } from \"@material-ui/core\";\n\nconst useToolbarStyles = makeStyles((theme) => ({\n root: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(1),\n },\n highlight:\n theme.palette.type === \"light\"\n ? {\n color: theme.palette.secondary.main,\n backgroundColor: lighten(theme.palette.secondary.light, 0.85),\n }\n : {\n color: theme.palette.text.primary,\n backgroundColor: theme.palette.secondary.dark,\n },\n title: {\n flex: \"1 1 100%\",\n },\n}));\n\nconst TableToolbar = (props) => {\n const classes = useToolbarStyles();\n const {\n numSelected,\n addUserHandler,\n deleteUserHandler,\n preGlobalFilteredRows,\n setGlobalFilter,\n globalFilter,\n dateRange,\n setDateRange,\n } = props;\n return (\n 0,\n })}\n >\n {/* */}\n\n \n {\n setDateRange(newValue);\n }}\n renderInput={(startProps, endProps) => (\n \n \n to \n \n \n setDateRange([null, null])}\n >\n Clear\n \n \n )}\n />\n \n\n {numSelected > 0 ? (\n \n {numSelected} selected\n \n ) : (\n \n )}\n\n {numSelected > 0 ? (\n \n \n \n \n \n ) : (\n \n )}\n \n );\n};\n\nTableToolbar.propTypes = {\n numSelected: PropTypes.number.isRequired,\n addUserHandler: PropTypes.func.isRequired,\n deleteUserHandler: PropTypes.func.isRequired,\n setGlobalFilter: PropTypes.func.isRequired,\n preGlobalFilteredRows: PropTypes.array.isRequired,\n globalFilter: PropTypes.string.isRequired,\n};\n\nexport default TableToolbar;\n","import React from \"react\";\n\nimport MaUTable from \"@material-ui/core/Table\";\nimport PropTypes from \"prop-types\";\nimport TableBody from \"@material-ui/core/TableBody\";\nimport TableCell from \"@material-ui/core/TableCell\";\nimport TableContainer from \"@material-ui/core/TableContainer\";\nimport TableFooter from \"@material-ui/core/TableFooter\";\nimport TableHead from \"@material-ui/core/TableHead\";\nimport TablePagination from \"@material-ui/core/TablePagination\";\nimport TablePaginationActions from \"./TablePaginationActions\";\nimport TableRow from \"@material-ui/core/TableRow\";\nimport TableSortLabel from \"@material-ui/core/TableSortLabel\";\nimport TableToolbar from \"./TableToolbar\";\nimport {\n useGlobalFilter,\n usePagination,\n useRowSelect,\n useSortBy,\n useTable,\n} from \"react-table\";\n\nconst inputStyle = {\n padding: 0,\n margin: 0,\n border: 0,\n background: \"transparent\",\n};\n\n// Create an editable cell renderer\nconst EditableCell = ({\n value: initialValue,\n row: { index },\n column: { id },\n updateMyData, // This is a custom function that we supplied to our table instance\n}) => {\n // We need to keep and update the state of the cell normally\n const [value, setValue] = React.useState(initialValue);\n\n const onChange = (e) => {\n setValue(e.target.value);\n };\n\n // We'll only update the external data when the input is blurred\n const onBlur = () => {\n updateMyData(index, id, value);\n };\n\n // If the initialValue is changed externall, sync it up with our state\n React.useEffect(() => {\n setValue(initialValue);\n }, [initialValue]);\n\n return (\n \n );\n};\n\nEditableCell.propTypes = {\n cell: PropTypes.shape({\n value: PropTypes.any.isRequired,\n }),\n row: PropTypes.shape({\n index: PropTypes.number.isRequired,\n }),\n column: PropTypes.shape({\n id: PropTypes.number.isRequired,\n }),\n updateMyData: PropTypes.func.isRequired,\n};\n\n// Set our editable cell renderer as the default Cell renderer\n\nconst EnhancedTable = ({\n columns,\n data,\n setData,\n updateMyData,\n skipPageReset,\n dateRange,\n setDateRange,\n}) => {\n const {\n getTableProps,\n headerGroups,\n prepareRow,\n page,\n gotoPage,\n setPageSize,\n preGlobalFilteredRows,\n setGlobalFilter,\n state: { pageIndex, pageSize, selectedRowIds, globalFilter },\n } = useTable(\n {\n columns,\n data,\n autoResetPage: !skipPageReset,\n // updateMyData isn't part of the API, but\n // anything we put into these options will\n // automatically be available on the instance.\n // That way we can call this function from our\n // cell renderer!\n updateMyData,\n },\n useGlobalFilter,\n useSortBy,\n usePagination,\n useRowSelect\n );\n\n const handleChangePage = (event, newPage) => {\n gotoPage(newPage);\n };\n\n const handleChangeRowsPerPage = (event) => {\n setPageSize(Number(event.target.value));\n };\n\n const removeByIndexs = (array, indexs) =>\n array.filter((_, i) => !indexs.includes(i));\n\n const deleteUserHandler = (event) => {\n const newData = removeByIndexs(\n data,\n Object.keys(selectedRowIds).map((x) => parseInt(x, 10))\n );\n setData(newData);\n };\n\n const addUserHandler = (user) => {\n const newData = data.concat([user]);\n setData(newData);\n };\n\n // Render the UI for your table\n return (\n \n \n \n \n {headerGroups.map((headerGroup) => (\n \n {headerGroup.headers.map((column) => (\n \n {column.render(\"Header\")}\n {column.id !== \"selection\" ? (\n \n ) : null}\n \n ))}\n \n ))}\n \n \n {page.map((row, i) => {\n prepareRow(row);\n return (\n \n {row.cells.map((cell) => {\n return (\n \n {cell.render(\"Cell\")}\n \n );\n })}\n \n );\n })}\n \n\n \n \n \n \n \n \n \n );\n};\n\nEnhancedTable.propTypes = {\n columns: PropTypes.array.isRequired,\n data: PropTypes.array.isRequired,\n updateMyData: PropTypes.func.isRequired,\n setData: PropTypes.func.isRequired,\n skipPageReset: PropTypes.bool.isRequired,\n};\n\nexport default EnhancedTable;\n","import { FormGroup } from \"@material-ui/core\";\nimport {\n Box,\n Button,\n Checkbox,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n FormControlLabel,\n TextField,\n} from \"@material-ui/core\";\nimport { Autocomplete } from \"@material-ui/lab\";\nimport axios from \"axios\";\nimport { useSnackbar } from \"notistack\";\nimport { useState } from \"react\";\nimport { useMutation, useQuery, useQueryClient } from \"react-query\";\n\nconst CreateDialog = (props) => {\n const queryClient = useQueryClient();\n const { enqueueSnackbar } = useSnackbar();\n const [user, setUser] = useState({\n hospitalId: \"\",\n username: \"\",\n customerId: \"\",\n phoneNumber: \"\",\n agentDivision: \"\",\n has_recommended: false,\n hasAgreedConsent: false,\n });\n\n const getAllAgents = async () => {\n const response = await fetch(\n `${process.env.REACT_APP_BACKEND_URL}/api/agents`,\n {\n method: \"GET\",\n }\n );\n\n const data = await response.json();\n\n return data.data;\n };\n\n const { data: agents } = useQuery(\"getAllAgents\", getAllAgents);\n\n const getData = (value) => {\n return queryClient.invalidateQueries(\"getAllData\");\n };\n\n const { mutate: mutateGetData } = useMutation(getData);\n\n const createUser = async () => {\n console.log(user);\n\n try {\n const userCreate = await axios.post(\n `${process.env.REACT_APP_BACKEND_URL}/api/user/create`,\n user,\n {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n\n console.log(userCreate.data);\n mutateGetData();\n enqueueSnackbar(\"User created\", { variant: \"success\" });\n props.onClose();\n } catch (err) {\n enqueueSnackbar(err.response.data.message, { variant: \"error\" });\n console.log(err);\n return err;\n }\n };\n\n const {\n mutate: mutateCreateUser,\n isLoading: isLoadingCreateUser,\n } = useMutation(createUser);\n\n const handleCreateUser = () => {\n try {\n console.log(\"creating user\");\n mutateCreateUser(user);\n } catch (error) {\n console.log(`Handle Change User Info Error: ${error}`);\n } finally {\n // props.onClose();\n }\n };\n\n return (\n \n Tambah User\n \n \n setUser({ ...user, hospitalId: e.target.value })}\n />\n setUser({ ...user, username: e.target.value })}\n />\n \n setUser({\n ...user,\n phoneNumber: e.target.value,\n customerId: e.target.value,\n })\n }\n />\n option.agentName}\n onChange={(_, newValue) => {\n const agentDivision = newValue.agentDivison;\n console.log(agentDivision, newValue);\n setUser({ ...user, agentDivision });\n }}\n renderInput={(params) => (\n \n )}\n />\n \n \n setUser({ ...user, has_recommended: e.target.checked })\n }\n />\n }\n label=\"Has recommended\"\n />\n \n setUser({ ...user, hasAgreedConsent: e.target.checked })\n }\n />\n }\n label=\"Has agree\"\n />\n \n \n \n \n \n Create\n \n \n \n );\n};\n\nexport default CreateDialog;\n","import {\n Box,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n TextField,\n} from \"@material-ui/core\";\nimport axios from \"axios\";\nimport { useSnackbar } from \"notistack\";\nimport { useState } from \"react\";\n\nconst SendMenuDialog = (props) => {\n const { enqueueSnackbar } = useSnackbar();\n const [user, setUser] = useState({\n phoneNumber: \"\",\n });\n\n const handleSubmit = async () => {\n console.log(user);\n\n try {\n const sendMenuResponse = await axios.post(\n `${process.env.REACT_APP_BACKEND_URL}/api/sendMenu`,\n user,\n {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n\n console.log(sendMenuResponse.data);\n enqueueSnackbar(\"Menu has been sent\", { variant: \"success\" });\n props.onClose();\n } catch (err) {\n enqueueSnackbar(err.response.data.message, { variant: \"error\" });\n console.log(err);\n return err;\n }\n };\n\n return (\n \n Kirim Menu\n \n \n setUser({ ...user, phoneNumber: e.target.value })}\n />\n \n \n \n \n Send\n \n \n \n );\n};\n\nexport default SendMenuDialog;\n","import React, { useEffect, useState } from \"react\";\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n Grid,\n Input,\n ListItemIcon,\n TextField,\n} from \"@material-ui/core\";\nimport { useSnackbar } from \"notistack\";\nimport {\n focusManager,\n useMutation,\n useQuery,\n useQueryClient,\n} from \"react-query\";\nimport { format, parse as parseDate } from \"date-fns\";\nimport moment from \"moment\";\n// components\nimport PageTitle from \"../../components/PageTitle/PageTitle\";\nimport {\n List,\n ListItem,\n ListItemText,\n CircularProgress,\n} from \"@material-ui/core\";\nimport AddItrDialog from \"../../components/Dialog/AddItrDialog\";\nimport AssignmentSharpIcon from \"@material-ui/icons/AssignmentSharp\";\nimport EnhancedTable from \"../../components/Tables/EnhancedTable\";\nimport { Box } from \"@material-ui/core\";\nimport { Paper } from \"@material-ui/core\";\nimport { parse } from \"papaparse\";\nimport axios from \"axios\";\nimport { CheckCircle, ErrorRounded, Refresh } from \"@material-ui/icons\";\nimport CreateDialog from \"../../components/Dialog/CreateDialog\";\nimport SendMenuDialog from \"../../components/Dialog/SendMenuDialog\";\n\nexport default function Tables() {\n const queryClient = useQueryClient();\n const columns = React.useMemo(\n () => [\n {\n Header: \"Username\",\n accessor: \"username\",\n // disableGlobalFilter: true,\n },\n {\n Header: \"Nomor Telepon\",\n accessor: \"phoneNumber\",\n },\n {\n Header: \"Produk Rekomendasi\",\n accessor: \"productName\",\n Cell: ({ row }) => (\n \n {row?.original?.productName?.map((value, index) => {\n const [name, date] = value.split(\"|\");\n\n return (\n \n \n \n \n );\n })}\n \n ),\n },\n {\n Header: \"Hospital Name\",\n accessor: \"hospitalname\",\n // disableGlobalFilter: true,\n },\n {\n Header: \"Hospital ID\",\n accessor: \"hospitalid\",\n },\n {\n Header: \"Action\",\n Cell: ({ row }) => ,\n },\n ],\n []\n );\n\n const [openImportDialog, setOpenImportDialog] = useState(false);\n const [exportIsWaiting, setExportIsWaiting] = useState(false);\n const [importIsWaiting, setImportIsWaiting] = useState(false);\n const [createDialogOpen, setCreateDialogOpen] = useState(false);\n const [sendMenuDialogOpen, setSendMenuDialogOpen] = useState(false);\n const [importErrorMessages, setimportErrorMessages] = useState([]);\n const [dateRange, setDateRange] = useState([null, null]);\n const [dateFilter, setDateFilter] = useState({ from: null, to: null });\n\n const { enqueueSnackbar } = useSnackbar();\n\n const baseUrl = `${process.env.REACT_APP_BACKEND_URL}`;\n\n const getAllData = async (filter) => {\n console.log(\"date filter\", filter);\n\n const urlParams =\n filter.from && filter.to ? new URLSearchParams(filter).toString() : \"\";\n\n const response = await fetch(`${baseUrl}/api/itr/itrs?` + urlParams, {\n method: \"GET\",\n });\n\n const data = await response.json();\n return data.customers;\n };\n\n const { data, isLoading } = useQuery([\"getAllData\", dateFilter], () =>\n getAllData(dateFilter)\n );\n\n useEffect(() => {\n const [start, to] = dateRange;\n\n if (start && to) {\n setDateFilter({\n from: format(start, \"yyyy-MM-dd\"),\n to: format(to, \"yyyy-MM-dd\"),\n });\n }\n\n if (!start && !to) {\n setDateFilter({\n from: null,\n to: null,\n });\n }\n }, [dateRange, queryClient]);\n\n const getCsvRecords = async () => {\n setExportIsWaiting(true);\n const response = await fetch(\n `${process.env.REACT_APP_BACKEND_URL}/api/itr/export`,\n {\n method: \"GET\",\n }\n );\n\n const data = await response.blob();\n\n if (data) {\n setExportIsWaiting(false);\n }\n\n const file = window.URL.createObjectURL(data);\n window.location.assign(file);\n };\n\n const importFromCSVLocally = async (e) => {\n const importFile = e.target.files;\n console.log(importFile);\n if (importFile) {\n // setImportIsWaiting(true)\n try {\n setOpenImportDialog(true);\n const csvFile = Array.from(importFile).filter(\n (file) =>\n file.type === \"text/csv\" || file.type === \"application/vnd.ms-excel\"\n );\n if (csvFile.length !== 0) {\n const logs = [];\n csvFile.forEach(async (file) => {\n const columns = await file.text();\n console.log({ columns });\n const result = parse(columns, {\n header: true,\n fastMode: true,\n // worker: true,\n });\n // return console.log(result)\n if (result.data.length > 200) {\n logs.push({\n data: { msg: \"Data import is limited to 200 data\" },\n });\n return setimportErrorMessages([...logs]);\n } else {\n console.log(\n \"🚀 ~ file: Table.js ~ line 127 ~ csvFile.forEach ~ result\",\n result\n );\n result.data.forEach((item) => {\n console.log(item);\n function pushLogs(response) {\n logs.push(response);\n setimportErrorMessages([...logs]);\n }\n axios\n .put(`${baseUrl}/api/user/update`, JSON.stringify(item), {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => {\n pushLogs(response);\n })\n .catch((error) => {\n pushLogs(error.response);\n });\n // setContacts((existing) => [...existing, ...result.data]);\n // setimportErrorMessages(...importErrorMessages, response)\n });\n }\n });\n console.log({ logs, importErrorMessages });\n return logs;\n // setImportIsWaiting(false)\n } else {\n const errorMessage = \"File Invalid\";\n console.log(errorMessage);\n enqueueSnackbar(errorMessage, { variant: \"error\" });\n return errorMessage;\n }\n } catch (error) {\n e.target.files = null;\n console.log(error);\n }\n }\n };\n\n const importFromCSV = async (e) => {\n const importFile = e.target.files;\n console.log(importFile);\n if (importFile) {\n setImportIsWaiting(true);\n console.log(importFile[0]);\n try {\n const formData = new FormData();\n formData.append(\"file\", importFile[0]);\n axios\n .post(`${baseUrl}/api/user/import`, formData)\n .then((response) => {\n console.log(response);\n setImportIsWaiting(false);\n enqueueSnackbar(\"Data imported\", { variant: \"success\" });\n return response;\n })\n .catch((error) => {\n setImportIsWaiting(false);\n return console.log(error);\n // alert(error.response.data.message)\n });\n } catch (error) {\n // alert(error)\n setImportIsWaiting(false);\n console.log(error);\n return error;\n }\n }\n const formData = new FormData();\n formData.append(\"file\", importFile);\n };\n const { status: statusImport, mutateAsync: mutateImport } = useMutation(\n importFromCSVLocally,\n {\n onSuccess: () => {\n // alert('Success')\n setImportIsWaiting(false);\n queryClient.invalidateQueries(\"getAllData\");\n },\n onMutate: () => {\n setImportIsWaiting(true);\n },\n }\n );\n\n const handleImport = (e) => {\n console.log(e);\n e.persist();\n mutateImport(e);\n };\n // const { mutateAsync: isLoadingImport, data: dataImport } = useMutation('importCSV', importFromCSVLocally)\n\n const [tableData, setTableData] = React.useState([[]]);\n const [skipPageReset, setSkipPageReset] = React.useState(false);\n\n React.useEffect(() => {\n if (data) {\n setTableData(data);\n }\n }, [data]);\n\n const updateMyData = (rowIndex, columnId, value) => {\n // We also turn on the flag to not reset the page\n setSkipPageReset(true);\n setTableData((old) =>\n old.map((row, index) => {\n if (index === rowIndex) {\n return {\n ...old[rowIndex],\n [columnId]: value,\n };\n }\n return row;\n })\n );\n };\n\n return (\n <>\n setOpenImportDialog(false)}\n >\n Import Status\n \n \n \n {/* {statusImport === 'idle' && } */}\n {/* {statusImport} */}\n {importErrorMessages &&\n importErrorMessages.map((item, key) => {\n return (\n \n {item.status === 200 ? (\n <>\n \n \n \n \n Column {key + 1}: Success\n \n \n ) : (\n <>\n \n \n \n \n Column {key + 1}: {item.data.msg}\n \n \n )}\n \n );\n })}\n \n \n \n \n {/* */}\n {\n window.location.reload()}\n >\n Reload Page\n \n }\n \n \n setCreateDialogOpen(false)}\n />\n setSendMenuDialogOpen(false)}\n />\n \n \n \n \n \n }\n color=\"primary\"\n variant=\"contained\"\n size=\"large\"\n onClick={() => setSendMenuDialogOpen(true)}\n >\n Send Menu\n \n }\n color=\"primary\"\n variant=\"contained\"\n size=\"large\"\n disabled={exportIsWaiting}\n onClick={() => setCreateDialogOpen(true)}\n >\n Create Record\n \n }\n color=\"primary\"\n variant=\"contained\"\n size=\"large\"\n disabled={exportIsWaiting}\n onClick={getCsvRecords}\n >\n {exportIsWaiting ? \"Downloading\" : \"Export Data\"}\n \n \n \n \n\n \n \n {isLoading ? (\n \n \n \n ) : (\n \n \n \n )}\n \n \n \n );\n}\n","import React from \"react\";\nimport { Route, Switch, withRouter } from \"react-router-dom\";\nimport classnames from \"classnames\";\n\n//icons\n\n// styles\nimport useStyles from \"./styles\";\n\n// components\nimport Header from \"../Header/Header\";\nimport Sidebar from \"../Sidebar/Sidebar\";\n\n// pages\nimport Tables from \"../../pages/tables/Table\";\n\n// context\nimport { useLayoutState } from \"../../context/LayoutContext\";\n\nfunction Layout(props) {\n const classes = useStyles();\n\n // global\n const layoutState = useLayoutState();\n\n return (\n
\n <>\n
\n \n \n
\n \n \n \n
\n \n
\n );\n}\n\nexport default withRouter(Layout);\n","import React from \"react\";\nimport { Redirect, Route, Switch } from \"react-router-dom\";\nimport { useAuth } from \"../context/AuthContext\";\nimport Login from \"../pages/auth/Login\";\nimport Register from \"../pages/auth/Register\";\nimport PrivacyPolicy from \"../pages/general/PrivacyPolicy\";\nimport TermsCondition from \"../pages/general/TermsCondition\";\n\n// components\nimport Layout from \"./Layout/Layout\";\n\nexport default function App() {\n // global\n const { isAuth } = useAuth();\n\n return (\n \n }\n />\n } />\n \n \n \n \n \n \n );\n\n function PublicRoute({ component, ...rest }) {\n return (\n \n isAuth ? (\n \n ) : (\n React.createElement(component, props)\n )\n }\n />\n );\n }\n\n function PrivateRoute({ component, ...rest }) {\n return (\n \n isAuth ? (\n React.createElement(component, props)\n ) : (\n \n )\n }\n />\n );\n }\n}\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { ThemeProvider } from \"@material-ui/styles\";\nimport { CssBaseline } from \"@material-ui/core\";\nimport Themes from \"./themes\";\nimport App from \"./components/App\";\nimport * as serviceWorker from \"./serviceWorker\";\nimport { LayoutProvider } from \"./context/LayoutContext\";\nimport { ProvideAuth } from \"./context/AuthContext\";\nimport { QueryClient, QueryClientProvider } from \"react-query\";\nimport { SnackbarProvider } from \"notistack\";\nimport { BrowserRouter } from \"react-router-dom\";\n\nconst queryClient = new QueryClient();\n\nReactDOM.render(\n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: http://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}