summaryrefslogtreecommitdiff
path: root/src/helpers
diff options
context:
space:
mode:
Diffstat (limited to 'src/helpers')
-rw-r--r--src/helpers/address.js27
-rw-r--r--src/helpers/apiOdoo.js44
-rw-r--r--src/helpers/auth.js38
-rw-r--r--src/helpers/cart.js36
-rw-r--r--src/helpers/convertToOption.js11
-rw-r--r--src/helpers/currencyFormat.js8
-rw-r--r--src/helpers/formValidation.js107
-rw-r--r--src/helpers/getFileBase64.js11
-rw-r--r--src/helpers/greeting.js9
-rw-r--r--src/helpers/mailer.js12
-rw-r--r--src/helpers/slug.js25
-rw-r--r--src/helpers/toTitleCase.js8
12 files changed, 0 insertions, 336 deletions
diff --git a/src/helpers/address.js b/src/helpers/address.js
deleted file mode 100644
index c4a19af5..00000000
--- a/src/helpers/address.js
+++ /dev/null
@@ -1,27 +0,0 @@
-const getAddress = () => {
- const address = localStorage.getItem('address');
- if (address) return JSON.parse(address);
- return {};
-}
-
-const setAddress = (address) => {
- localStorage.setItem('address', JSON.stringify(address));
- return true;
-}
-
-const getItemAddress = (key) => {
- let address = getAddress();
- return address[key];
-}
-
-const createOrUpdateItemAddress = (key, value) => {
- let address = getAddress();
- address[key] = value;
- setAddress(address);
- return true;
-}
-
-export {
- getItemAddress,
- createOrUpdateItemAddress
-}; \ No newline at end of file
diff --git a/src/helpers/apiOdoo.js b/src/helpers/apiOdoo.js
deleted file mode 100644
index 4d0adae3..00000000
--- a/src/helpers/apiOdoo.js
+++ /dev/null
@@ -1,44 +0,0 @@
-import { getCookie, setCookie } from 'cookies-next';
-import axios from 'axios';
-import { getAuth } from './auth';
-
-const renewToken = async () => {
- let token = await axios.get(process.env.SELF_HOST + '/api/token');
- setCookie('token', token.data);
- return token.data;
-};
-
-const getToken = async () => {
- let token = getCookie('token');
- if (token == undefined) token = await renewToken();
- return token;
-};
-
-let connectionTry = 0;
-const apiOdoo = async (method, url, data = {}, headers = {}) => {
- try {
- connectionTry++;
- let token = await getToken();
- let axiosParameter = {
- method,
- url: process.env.ODOO_HOST + url,
- headers: {'Authorization': token, ...headers}
- }
- const auth = getAuth();
-
- if (auth) axiosParameter.headers['Token'] = auth.token;
- if (method.toUpperCase() == 'POST') axiosParameter.headers['Content-Type'] = 'application/x-www-form-urlencoded';
- if (Object.keys(data).length > 0) axiosParameter.data = new URLSearchParams(Object.entries(data)).toString();
-
- let res = await axios(axiosParameter);
- if (res.data.status.code == 401 && connectionTry < 15) {
- await renewToken();
- return apiOdoo(method, url, data, headers);
- }
- return res.data.result || [];
- } catch (error) {
- console.log(error)
- }
-}
-
-export default apiOdoo; \ No newline at end of file
diff --git a/src/helpers/auth.js b/src/helpers/auth.js
deleted file mode 100644
index 62eba2c0..00000000
--- a/src/helpers/auth.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import { deleteCookie, getCookie, setCookie } from 'cookies-next';
-import { useEffect, useState } from 'react';
-
-const getAuth = () => {
- let auth = getCookie('auth');
- if (auth) {
- return JSON.parse(auth);
- }
- return false;
-}
-
-const setAuth = (user) => {
- setCookie('auth', JSON.stringify(user));
- return true;
-}
-
-const deleteAuth = () => {
- deleteCookie('auth');
- return true;
-}
-
-const useAuth = () => {
- const [auth, setAuth] = useState(null);
-
- useEffect(() => {
- const handleIsAuthenticated = () => setAuth(getAuth());
- handleIsAuthenticated();
- }, []);
-
- return [auth, setAuth];
-}
-
-export {
- getAuth,
- setAuth,
- deleteAuth,
- useAuth
-}; \ No newline at end of file
diff --git a/src/helpers/cart.js b/src/helpers/cart.js
deleted file mode 100644
index 66efcbf2..00000000
--- a/src/helpers/cart.js
+++ /dev/null
@@ -1,36 +0,0 @@
-const getCart = () => {
- const cart = localStorage.getItem('cart');
- if (cart) return JSON.parse(cart);
- return {};
-}
-
-const setCart = (cart) => {
- localStorage.setItem('cart', JSON.stringify(cart));
- return true;
-}
-
-const getItemCart = (product_id) => {
- let cart = getCart();
- return cart[product_id];
-}
-
-const createOrUpdateItemCart = (product_id, quantity, selected = false) => {
- let cart = getCart();
- cart[product_id] = { product_id, quantity, selected };
- setCart(cart);
- return true;
-}
-
-const deleteItemCart = (product_id) => {
- let cart = getCart();
- delete cart[product_id];
- setCart(cart);
- return true;
-}
-
-export {
- getCart,
- getItemCart,
- createOrUpdateItemCart,
- deleteItemCart
-} \ No newline at end of file
diff --git a/src/helpers/convertToOption.js b/src/helpers/convertToOption.js
deleted file mode 100644
index 08fec08f..00000000
--- a/src/helpers/convertToOption.js
+++ /dev/null
@@ -1,11 +0,0 @@
-const convertToOption = (data) => {
- if (data) {
- return {
- value: data.id,
- label: data.name,
- }
- }
- return null;
-};
-
-export default convertToOption; \ No newline at end of file
diff --git a/src/helpers/currencyFormat.js b/src/helpers/currencyFormat.js
deleted file mode 100644
index dadeaec6..00000000
--- a/src/helpers/currencyFormat.js
+++ /dev/null
@@ -1,8 +0,0 @@
-export default function currencyFormat(value) {
- const currency = new Intl.NumberFormat('id-ID', {
- style: 'currency',
- currency: 'IDR',
- maximumFractionDigits: 0
- });
- return currency.format(value);
-} \ No newline at end of file
diff --git a/src/helpers/formValidation.js b/src/helpers/formValidation.js
deleted file mode 100644
index 0e83f4cc..00000000
--- a/src/helpers/formValidation.js
+++ /dev/null
@@ -1,107 +0,0 @@
-import { useCallback, useEffect, useState } from "react";
-
-const validateForm = (data, queries, hasChangedInputs = null) => {
- let result = { valid: true, errors: {} };
-
- for (const query in queries) {
- if (!hasChangedInputs || (hasChangedInputs && hasChangedInputs[query])) {
- const value = data[query];
- const rules = queries[query];
- let errors = [];
- let label = null;
- for (const rule of rules) {
- let emailValidationRegex = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
- if (rule.startsWith('label:')) {
- label = rule.replace('label:', '');
- } else if (rule === 'required' && !value) {
- errors.push('tidak boleh kosong');
- } else if (rule === 'email' && !value.match(emailValidationRegex)) {
- errors.push('harus format johndoe@example.com');
- } else if (rule.startsWith('maxLength:')) {
- let maxLength = parseInt(rule.replace('maxLength:', ''));
- if (value && value.length > maxLength) errors.push(`maksimal ${maxLength} karakter`);
- }
- }
- if (errors.length > 0) {
- result.errors[query] = (label || query) + ' ' + errors.join(', ');
- }
- }
- }
-
- if (Object.keys(result.errors).length > 0) {
- result.valid = false;
- }
-
- return result;
-}
-
-const useFormValidation = ({ initialFormValue = {}, validationScheme = {} }) => {
- const [ formInputs, setFormInputs ] = useState(initialFormValue);
- const [ formErrors, setFormErrors ] = useState({});
- const [ formValidation ] = useState(validationScheme);
- const [ hasChangedInputs, setHasChangedInputs ] = useState({});
-
- const handleFormSubmit = (event, func) => {
- if (event) {
- event.preventDefault();
-
- // Make all input to be has changed mode to revalidate
- const changedInputs = {};
- for (const key in formInputs) changedInputs[key] = true;
- setHasChangedInputs(changedInputs);
-
- const { valid, errors } = validateForm(formInputs, formValidation, changedInputs);
- setFormErrors(errors);
-
- if (valid) func();
- }
- };
-
- const setChangedInput = (name, value = true) => {
- setHasChangedInputs((hasChangedInputs) => ({
- ...hasChangedInputs,
- [name]: value
- }));
- };
-
- const handleInputChange = (event) => {
- setFormInputs((formInputs) => ({
- ...formInputs,
- [event.target.name]: event.target.value
- }));
- setChangedInput(event.target.name);
- };
-
- const handleSelectChange = useCallback((name, value) => {
- setFormInputs((formInputs) => ({
- ...formInputs,
- [name]: value
- }));
- setChangedInput(name);
- }, []);
-
- const handleFormReset = () => {
- setFormInputs(initialFormValue);
- setFormErrors({});
- setHasChangedInputs({});
- }
-
- useEffect(() => {
- if (formInputs) {
- const { errors } = validateForm(formInputs, formValidation, hasChangedInputs);
- setFormErrors(errors);
- }
- }, [ formInputs, formValidation, hasChangedInputs ])
-
- return {
- handleFormReset,
- handleFormSubmit,
- handleInputChange,
- handleSelectChange,
- hasChangedInputs,
- formInputs,
- formErrors
- };
- };
-
-export default useFormValidation; \ No newline at end of file
diff --git a/src/helpers/getFileBase64.js b/src/helpers/getFileBase64.js
deleted file mode 100644
index 78013e43..00000000
--- a/src/helpers/getFileBase64.js
+++ /dev/null
@@ -1,11 +0,0 @@
-const getFileBase64 = file => new Promise((resolve, reject) => {
- let reader = new FileReader();
- reader.readAsBinaryString(file);
- reader.onload = () => {
- let result = reader.result;
- resolve(btoa(result));
- };
- reader.onerror = error => reject(error);
-});
-
-export default getFileBase64; \ No newline at end of file
diff --git a/src/helpers/greeting.js b/src/helpers/greeting.js
deleted file mode 100644
index 7dc19f8f..00000000
--- a/src/helpers/greeting.js
+++ /dev/null
@@ -1,9 +0,0 @@
-const greeting = () => {
- let hours = new Date().getHours();
- if (hours < 11) return 'Selamat Pagi';
- if (hours < 15) return 'Selamat Siang';
- if (hours < 18) return 'Selamat Sore';
- return 'Selamat Malam';
-}
-
-export default greeting; \ No newline at end of file
diff --git a/src/helpers/mailer.js b/src/helpers/mailer.js
deleted file mode 100644
index 4e7ff7cc..00000000
--- a/src/helpers/mailer.js
+++ /dev/null
@@ -1,12 +0,0 @@
-const nodemailer = require('nodemailer');
-const mailer = nodemailer.createTransport({
- port: process.env.MAIL_PORT,
- host: process.env.MAIL_HOST,
- auth: {
- user: process.env.MAIL_USER,
- pass: process.env.MAIL_PASS
- },
- secure: true
-});
-
-export default mailer; \ No newline at end of file
diff --git a/src/helpers/slug.js b/src/helpers/slug.js
deleted file mode 100644
index 0a7d30fc..00000000
--- a/src/helpers/slug.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import toTitleCase from './toTitleCase';
-
-const createSlug = (name, id) => {
- let slug = name?.trim().replace(new RegExp(/[^A-Za-z0-9]/, 'g'), '-').toLowerCase() + '-' + id;
- let splitSlug = slug.split('-');
- let filterSlugFromEmptyChar = splitSlug.filter(x => x != '');
- return filterSlugFromEmptyChar.join('-');
-}
-
-const getIdFromSlug = (slug) => {
- let id = slug.split('-');
- return id[id.length-1];
-}
-
-const getNameFromSlug = (slug) => {
- let name = slug.split('-');
- name.pop();
- return toTitleCase(name.join(' '));
-}
-
-export {
- createSlug,
- getIdFromSlug,
- getNameFromSlug
-}; \ No newline at end of file
diff --git a/src/helpers/toTitleCase.js b/src/helpers/toTitleCase.js
deleted file mode 100644
index 5cfd70d0..00000000
--- a/src/helpers/toTitleCase.js
+++ /dev/null
@@ -1,8 +0,0 @@
-export default function toTitleCase(str) {
- return str.replace(
- /\w\S*/g,
- function(txt) {
- return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
- }
- );
-} \ No newline at end of file