diff --git a/.env b/.env new file mode 100644 index 0000000..7f5bf96 --- /dev/null +++ b/.env @@ -0,0 +1 @@ +process.env.NEXT_PUBLIC_BASE_URL=https://ppob-backend.k3s.bangun-kreatif.com/v1 \ No newline at end of file diff --git a/k8s/production/ingress.yaml b/k8s/production/ingress.yaml index 2fe0e8c..9a11926 100644 --- a/k8s/production/ingress.yaml +++ b/k8s/production/ingress.yaml @@ -6,9 +6,10 @@ metadata: annotations: kubernetes.io/ingress.class: "traefik" cert-manager.io/cluster-issuer: letsencrypt-prod + traefik.ingress.kubernetes.io/router.middlewares: empatnusabangsa-production-redirect-https@kubernetescrd spec: rules: - - host: "wndsolutions.id" + - host: "www.wndsolutions.id" http: paths: - pathType: Prefix @@ -20,5 +21,5 @@ spec: number: 80 tls: - hosts: - - "wndsolutions.id" - secretName: wndsolutions-id-tls + - "www.wndsolutions.id" + secretName: www-wndsolutions-id-tls diff --git a/src/component/CategoryComponent.js b/src/component/CategoryComponent.js index 76b164a..2866c89 100644 --- a/src/component/CategoryComponent.js +++ b/src/component/CategoryComponent.js @@ -5,7 +5,6 @@ import { Input, message, Modal, - Select, Space, Table, List, diff --git a/src/config/app.js b/src/config/app.js index b6c3d6a..9736d44 100644 --- a/src/config/app.js +++ b/src/config/app.js @@ -1,7 +1,3 @@ export const appConfig = { - apiUrl: 'https://ppob-backend.k3s.bangun-kreatif.com/v1' - //apiUrl: 'http://localhost:3222/v1' - // apiUrl: 'http://localhost:3222/v1' + apiUrl: process.env.NEXT_PUBLIC_BASE_URL || 'https://ppob-backend.k3s.bangun-kreatif.com/v1' }; - -//export default appConfig; diff --git a/src/pages/Membership/DetailUser.js b/src/pages/Membership/DetailUser.js index ca191eb..5e411a9 100644 --- a/src/pages/Membership/DetailUser.js +++ b/src/pages/Membership/DetailUser.js @@ -469,9 +469,11 @@ export const DetailUser = observer(() => { Ganti Password {((store.authentication.userData.role === "Sales" && - store.membership.dataDetail.is_rejected === true) || + store.membership.dataDetail.is_rejected === true && + store.membership.dataDetail.is_active === false) || (store.authentication.userData.role === "Supervisor" && - store.membership.dataDetail.is_rejected === true)) && ( + store.membership.dataDetail.is_rejected === true && + store.membership.dataDetail.is_active === false)) && ( - + {item.user_detail?.image_store !== '""' ? ( + + ) : ( + "" + )}

} @@ -449,7 +462,7 @@ export const Konfirmasi = observer(() => { ) : ( {identitas.id} )} diff --git a/src/pages/Membership/Membership.js b/src/pages/Membership/Membership.js index e51ffa5..23cdc47 100644 --- a/src/pages/Membership/Membership.js +++ b/src/pages/Membership/Membership.js @@ -299,7 +299,7 @@ export const Membership = observer(() => { ? message.success( response?.body?.message || "Berhasil Tambah Member Baru" ) - : message.error(response?.body?.error || "Gagal Tambah Member Baru"); + : message.error(response?.body?.error || "Gagal"); await getData(); } catch (e) { console.log(e, "apa errornya"); diff --git a/src/pages/Membership/MembershipModal.js b/src/pages/Membership/MembershipModal.js index d1bca04..ade23db 100644 --- a/src/pages/Membership/MembershipModal.js +++ b/src/pages/Membership/MembershipModal.js @@ -319,7 +319,13 @@ export const MembershipModal = ({ }} /> - +
- +
- +
- +
{ const [form] = Form.useForm(); const store = useStore(); @@ -128,7 +124,7 @@ export const PaybackCreated = observer(() => { const dataRoute = [ { route: LINKS.PAYBACK_CREATED, - name: "Buat Pembayaran" + name: "Buat Pembayaran", }, ]; @@ -150,14 +146,12 @@ export const PaybackCreated = observer(() => { const handleSubmitFilter = async () => { const data = form.getFieldsValue(); console.log(data); - const awal = (store.payback.filterStart = moment(data.start_date).format( + store.payback.filterStart = moment(data.start_date).format( "YYYY-MM-DD 00:00:00" - )); - const akhir = (store.payback.filterEnd = moment(data.end_date).format( + ); + store.payback.filterEnd = moment(data.end_date).format( "YYYY-MM-DD HH:mm:ss" - )); - console.log(awal); - console.log(akhir); + ); modalLoader.setLoading(true); await store.payback.getDataCreated(); modalLoader.setLoading(false); diff --git a/src/pages/Product/Category.js b/src/pages/Product/Category.js index 1cbedc8..d1ef4ba 100644 --- a/src/pages/Product/Category.js +++ b/src/pages/Product/Category.js @@ -8,8 +8,6 @@ import {LINKS} from "../../routes/app"; import {CategoryComponent} from "../../component/CategoryComponent"; import {ModalLoaderContext} from "../../utils/modal"; -const {TabPane} = Tabs; -const {Search} = Input; export const Category = observer(() => { const store = useStore(); diff --git a/src/pages/Product/PulsaModal.js b/src/pages/Product/PulsaModal.js new file mode 100644 index 0000000..822e394 --- /dev/null +++ b/src/pages/Product/PulsaModal.js @@ -0,0 +1,213 @@ +// import React,{useEffect,useState} from "react"; +// import { Form, Input, Modal, Select } from "antd"; + +// export const PulsaModal = ({ visible, onCreate, onCancel, initialData }) => { +// const [form] = Form.useForm(); +// const { Option } = Select; +// const [visibleModal, setVisibleModal] = useState(false) +// const [initialData, setInitialData] = useState({}) +// const [confirmLoading, setConfirmLoading] = useState(false); +// const [isLoading, setIsLoading] = useState(false); +// useEffect(() => { +// const init = async () => { +// try { +// setIsLoading(true); +// await store.categories.getData(); +// setIsLoading(false); +// } catch (e) { +// setIsLoading(false); +// } +// }; + +// init(); +// }, []); + +// return ( +// { +// onSubmit(data) +// }} +// onCancel={() => { +// setInitialData({}) +// setVisibleModal(false); +// }} +// visible={visible} +// title={initialData.id ? "Edit Member" : "Create a new Member"} +// okText={initialData.id ? "Edit" : "Create"} +// cancelText="Cancel" +// onCancel={() => { +// form.resetFields(); +// onCancel(); +// }} +// onOk={() => { +// form +// .validateFields() +// .then((values) => { +// onCreate(values); +// form.resetFields(); +// }) +// .catch((info) => { +// console.log("Validate Failed:", info); +// }); +// }} +// > +//
+// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +//
+//
+// ); +// }; +import React, { useState, useEffect } from "react"; +import { Form, Input, Modal, Select } from "antd"; +import { useStore } from "../../utils/useStore"; + +export const PulsaModal = ({ visible, onCreate, onCancel }) => { + const [form] = Form.useForm(); + const { Option } = Select; + const dataStatus = ["Active", "Inactive"]; + const store = useStore(); + const [visibleModal, setVisibleModal] = useState(false); + const [initialData, setInitialData] = useState({}); + const [confirmLoading, setConfirmLoading] = useState(false); + const [isLoading, setIsLoading] = useState(false); + const init = async () => { + try { + setIsLoading(true); + await store.categories.getData(); + setIsLoading(false); + } catch (e) { + setIsLoading(false); + } + }; + + useEffect(() => { + init(); + }, []); + + return ( + { + form.resetFields(); + onCancel(); + }} + onOk={() => { + form + .validateFields() + .then((values) => { + onCreate(values); + form.resetFields(); + }) + .catch((info) => { + console.log("Validate Failed:", info); + }); + }} + > +
+ + + + + + + + + + + + + + + + + + +
+
+ ); +}; diff --git a/src/store/categories.js b/src/store/categories.js new file mode 100644 index 0000000..603aa3a --- /dev/null +++ b/src/store/categories.js @@ -0,0 +1,40 @@ +import {action, makeAutoObservable} from "mobx"; +import {http} from "../utils/http"; + +export class Categories { + page = 0; + pageSize = 10 + data = []; + total_data = 0 + + constructor(ctx) { + this.ctx = ctx; + makeAutoObservable(this); + } + + @action + async getData() { + const response = await http.get(`/product/sub-categories?page=${this.page}&pageSize=${this.pageSize}`); + console.log(response,'Data cate') + console.log(JSON.stringify(response.body.data),'Data') + + this.data = response.body.data ?? [] + this.total_data = response.body.total_data ?? 0 + } + + @action + async create(data) { + return await http.post('/user').send(data) + } + + @action + async update(id, data) { + return await http.put('/user/' + id).send(data); + } + + async delete(id) { + return await http.del('/product/' + id); + } +} + + diff --git a/yarn.lock b/yarn.lock index efd0cd4..43b09e5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4059,6 +4059,11 @@ dayjs@1.x: resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.7.tgz#2cf5f91add28116748440866a0a1d26f3a6ce468" integrity sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig== +date-fns@^2.27.0: + version "2.27.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.27.0.tgz#e1ff3c3ddbbab8a2eaadbb6106be2929a5a2d92b" + integrity sha512-sj+J0Mo2p2X1e306MHq282WS4/A8Pz/95GIFcsPNMPMZVI3EUrAdSv90al1k+p74WGLCruMXk23bfEDZa71X9Q== + debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"