From ee4297280c1305c7e03bedd4df63ccf136c28c6c Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Tue, 24 Jan 2023 15:54:48 +0700 Subject: Merapihkan struktur folder --- src/pages/404.js | 6 +-- src/pages/activate.js | 12 +++--- src/pages/api/activation-request.js | 4 +- src/pages/api/activation.js | 2 +- src/pages/api/login.js | 2 +- src/pages/api/register.js | 2 +- src/pages/index.js | 14 +++---- src/pages/login.js | 12 +++--- src/pages/logout.js | 2 +- src/pages/my/address/[id]/edit.js | 12 +++--- src/pages/my/address/create.js | 14 +++---- src/pages/my/address/index.js | 16 ++++---- src/pages/my/menu.js | 8 ++-- src/pages/my/profile.js | 12 +++--- src/pages/my/transactions/[slug].js | 8 ++-- src/pages/my/transactions/index.js | 16 ++++---- src/pages/register.js | 10 ++--- src/pages/shop/brands.js | 79 ------------------------------------- src/pages/shop/brands/[slug].js | 16 ++++---- src/pages/shop/brands/index.js | 79 +++++++++++++++++++++++++++++++++++++ src/pages/shop/cart.js | 26 ++++++------ src/pages/shop/checkout.js | 30 +++++++------- src/pages/shop/product/[slug].js | 22 +++++------ src/pages/shop/search.js | 14 +++---- 24 files changed, 210 insertions(+), 208 deletions(-) delete mode 100644 src/pages/shop/brands.js create mode 100644 src/pages/shop/brands/index.js (limited to 'src/pages') diff --git a/src/pages/404.js b/src/pages/404.js index b7f8b8ef..1e1850f2 100644 --- a/src/pages/404.js +++ b/src/pages/404.js @@ -1,7 +1,7 @@ import Image from "next/image"; -import Link from "../components/Link"; -import Header from "../components/Header"; -import Layout from "../components/Layout"; +import Link from "@/components/elements/Link"; +import Header from "@/components/layouts/Header"; +import Layout from "@/components/layouts/Layout"; import PageNotFoundImage from "../images/page-not-found.png"; export default function PageNotFound() { diff --git a/src/pages/activate.js b/src/pages/activate.js index c738af81..d9b41bf4 100644 --- a/src/pages/activate.js +++ b/src/pages/activate.js @@ -1,14 +1,14 @@ import axios from "axios"; import Head from "next/head"; import Image from "next/image"; -import Link from "../components/Link"; +import Link from "@/components/elements/Link"; import { useRouter } from "next/router"; import { useEffect, useState } from "react"; -import Alert from "../components/Alert"; -import Layout from "../components/Layout"; -import Spinner from "../components/Spinner"; -import { setAuth } from "../helpers/auth"; -import Logo from "../images/logo.png"; +import Alert from "@/components/elements/Alert"; +import Layout from "@/components/layouts/Layout"; +import Spinner from "@/components/elements/Spinner"; +import { setAuth } from "@/core/utils/auth"; +import Logo from "@/images/logo.png"; export default function Activate() { const [email, setEmail] = useState(''); diff --git a/src/pages/api/activation-request.js b/src/pages/api/activation-request.js index 42ad5364..3f33875c 100644 --- a/src/pages/api/activation-request.js +++ b/src/pages/api/activation-request.js @@ -1,5 +1,5 @@ -import apiOdoo from "../../helpers/apiOdoo"; -import mailer from "../../helpers/mailer"; +import apiOdoo from "@/core/utils/apiOdoo"; +import mailer from "@/core/utils/mailer"; export default async function handler(req, res) { try { diff --git a/src/pages/api/activation.js b/src/pages/api/activation.js index 67ec1c9e..8b22af8d 100644 --- a/src/pages/api/activation.js +++ b/src/pages/api/activation.js @@ -1,4 +1,4 @@ -import apiOdoo from "../../helpers/apiOdoo"; +import apiOdoo from "@/core/utils/apiOdoo"; export default async function handler(req, res) { try { diff --git a/src/pages/api/login.js b/src/pages/api/login.js index a747294b..e02a73cb 100644 --- a/src/pages/api/login.js +++ b/src/pages/api/login.js @@ -1,4 +1,4 @@ -import apiOdoo from "../../helpers/apiOdoo"; +import apiOdoo from "@/core/utils/apiOdoo"; export default async function handler(req, res) { try { diff --git a/src/pages/api/register.js b/src/pages/api/register.js index 323cab24..7c8d8b39 100644 --- a/src/pages/api/register.js +++ b/src/pages/api/register.js @@ -1,4 +1,4 @@ -import apiOdoo from "../../helpers/apiOdoo"; +import apiOdoo from "@/core/utils/apiOdoo"; export default async function handler(req, res) { try { diff --git a/src/pages/index.js b/src/pages/index.js index 511f2ecd..35175dce 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -7,15 +7,15 @@ import "swiper/css/pagination"; import "swiper/css/autoplay"; // Helpers -import apiOdoo from "../helpers/apiOdoo"; +import apiOdoo from "@/core/utils/apiOdoo"; // Components -import Header from "../components/Header"; -import ProductSlider from "../components/product/ProductSlider"; -import Layout from "../components/Layout"; -import ManufactureCard from "../components/ManufactureCard"; -import Footer from "../components/Footer"; -import Image from "../components/Image"; +import Header from "@/components/layouts/Header"; +import ProductSlider from "@/components/products/ProductSlider"; +import Layout from "@/components/layouts/Layout"; +import ManufactureCard from "@/components/manufactures/ManufactureCard"; +import Footer from "@/components/layouts/Footer"; +import Image from "@/components/elements/Image"; export async function getServerSideProps() { const heroBanners = await apiOdoo('GET', `/api/v1/banner?type=index-a-1`); diff --git a/src/pages/login.js b/src/pages/login.js index 0dfacfaa..cd48e5e6 100644 --- a/src/pages/login.js +++ b/src/pages/login.js @@ -1,14 +1,14 @@ import axios from "axios"; import Head from "next/head"; import Image from "next/image"; -import Link from "../components/Link"; +import Link from "@/components/elements/Link"; import { useRouter } from "next/router"; import { useEffect, useState } from "react"; -import Alert from "../components/Alert"; -import Layout from "../components/Layout"; -import Spinner from "../components/Spinner"; -import { setAuth } from "../helpers/auth"; -import Logo from "../images/logo.png"; +import Alert from "@/components/elements/Alert"; +import Layout from "@/components/layouts/Layout"; +import Spinner from "@/components/elements/Spinner"; +import { setAuth } from "@/core/utils/auth"; +import Logo from "@/images/logo.png"; export default function Login() { const router = useRouter(); diff --git a/src/pages/logout.js b/src/pages/logout.js index de749a37..8ea21fab 100644 --- a/src/pages/logout.js +++ b/src/pages/logout.js @@ -1,6 +1,6 @@ import { useRouter } from "next/router"; import { useEffect } from "react"; -import { deleteAuth } from "../helpers/auth"; +import { deleteAuth } from "@/core/utils/auth"; export default function Logout() { const router = useRouter(); diff --git a/src/pages/my/address/[id]/edit.js b/src/pages/my/address/[id]/edit.js index e65ba699..838d39e7 100644 --- a/src/pages/my/address/[id]/edit.js +++ b/src/pages/my/address/[id]/edit.js @@ -1,12 +1,12 @@ import { Controller, useForm } from "react-hook-form" -import WithAuth from "../../../../components/WithAuth"; -import Layout from "../../../../components/Layout"; -import AppBar from "../../../../components/AppBar"; +import WithAuth from "@/components/auth/WithAuth"; +import Layout from "@/components/layouts/Layout"; +import AppBar from "@/components/layouts/AppBar"; import { yupResolver } from "@hookform/resolvers/yup"; import * as Yup from "yup"; -import { Select } from "../../../../components/Fields"; +import { Select } from "@/components/elements/Fields"; import { useEffect, useState } from "react"; -import apiOdoo from "../../../../helpers/apiOdoo"; +import apiOdoo from "@/core/utils/apiOdoo"; import { toast } from "react-hot-toast"; import { useRouter } from "next/router"; @@ -17,7 +17,7 @@ const validationSchema = Yup.object().shape({ mobile: Yup.string().required('Harus di-isi'), street: Yup.string().required('Harus di-isi'), zip: Yup.string().required('Harus di-isi'), - city: Yup.number().required('Harus di-pilih'), + city: Yup.string().required('Harus di-pilih'), }); const types = [ diff --git a/src/pages/my/address/create.js b/src/pages/my/address/create.js index 71f73a64..4c7a8130 100644 --- a/src/pages/my/address/create.js +++ b/src/pages/my/address/create.js @@ -1,13 +1,13 @@ import { Controller, useForm } from "react-hook-form" -import WithAuth from "../../../components/WithAuth"; -import Layout from "../../../components/Layout"; -import AppBar from "../../../components/AppBar"; +import WithAuth from "@/components/auth/WithAuth"; +import Layout from "@/components/layouts/Layout"; +import AppBar from "@/components/layouts/AppBar"; import { yupResolver } from "@hookform/resolvers/yup"; import * as Yup from "yup"; -import { Select } from "../../../components/Fields"; +import { Select } from "@/components/elements/Fields"; import { useEffect, useState } from "react"; -import apiOdoo from "../../../helpers/apiOdoo"; -import { useAuth } from "../../../helpers/auth"; +import apiOdoo from "@/core/utils/apiOdoo"; +import { useAuth } from "@/core/utils/auth"; import { toast } from "react-hot-toast"; import { useRouter } from "next/router"; @@ -18,7 +18,7 @@ const validationSchema = Yup.object().shape({ mobile: Yup.string().required('Harus di-isi'), street: Yup.string().required('Harus di-isi'), zip: Yup.string().required('Harus di-isi'), - city: Yup.number().required('Harus di-pilih'), + city: Yup.string().required('Harus di-pilih'), }); const defaultValues = { diff --git a/src/pages/my/address/index.js b/src/pages/my/address/index.js index 236e4b60..dbe082ff 100644 --- a/src/pages/my/address/index.js +++ b/src/pages/my/address/index.js @@ -1,12 +1,14 @@ import { useEffect, useState } from "react"; -import AppBar from "../../../components/AppBar"; -import Layout from "../../../components/Layout"; -import Link from "../../../components/Link"; -import WithAuth from "../../../components/WithAuth"; -import apiOdoo from "../../../helpers/apiOdoo"; -import { useAuth } from "../../../helpers/auth"; import { useRouter } from "next/router"; -import { createOrUpdateItemAddress, getItemAddress } from "../../../helpers/address"; + +import AppBar from "@/components/layouts/AppBar"; +import Layout from "@/components/layouts/Layout"; +import Link from "@/components/elements/Link"; +import WithAuth from "@/components/auth/WithAuth"; + +import apiOdoo from "@/core/utils/apiOdoo"; +import { useAuth } from "@/core/utils/auth"; +import { createOrUpdateItemAddress, getItemAddress } from "@/core/utils/address"; export default function Address() { const router = useRouter(); diff --git a/src/pages/my/menu.js b/src/pages/my/menu.js index f43c1fe9..e7ece135 100644 --- a/src/pages/my/menu.js +++ b/src/pages/my/menu.js @@ -1,8 +1,8 @@ -import AppBar from "../../components/AppBar"; -import Layout from "../../components/Layout"; -import Link from "../../components/Link"; -import { useAuth } from "../../helpers/auth"; +import AppBar from "@/components/layouts/AppBar"; +import Layout from "@/components/layouts/Layout"; +import Link from "@/components/elements/Link"; +import { useAuth } from "@/core/utils/auth"; import { ArrowRightOnRectangleIcon, ChatBubbleLeftRightIcon, diff --git a/src/pages/my/profile.js b/src/pages/my/profile.js index d4b7fb6d..97891259 100644 --- a/src/pages/my/profile.js +++ b/src/pages/my/profile.js @@ -1,14 +1,14 @@ -import { useEffect, useState } from "react"; +import { useState } from "react"; import { toast } from "react-hot-toast"; -import AppBar from "../../components/AppBar"; -import Layout from "../../components/Layout"; -import WithAuth from "../../components/WithAuth"; -import apiOdoo from "../../helpers/apiOdoo"; +import AppBar from "@/components/layouts/AppBar"; +import Layout from "@/components/layouts/Layout"; +import WithAuth from "@/components/auth/WithAuth"; +import apiOdoo from "@/core/utils/apiOdoo"; import { useAuth, setAuth as setAuthCookie, getAuth -} from "../../helpers/auth"; +} from "@/core/utils/auth"; export default function MyProfile() { const [auth, setAuth] = useAuth(); diff --git a/src/pages/my/transactions/[slug].js b/src/pages/my/transactions/[slug].js index b2381247..a76b0c4d 100644 --- a/src/pages/my/transactions/[slug].js +++ b/src/pages/my/transactions/[slug].js @@ -1,8 +1,8 @@ import { ArrowDownOnSquareIcon, ArrowDownTrayIcon, ChevronDownIcon, ChevronRightIcon, ChevronUpIcon } from "@heroicons/react/24/outline"; -import AppBar from "../../../components/AppBar"; -import Layout from "../../../components/Layout"; -import LineDivider from "../../../components/LineDivider"; -import WithAuth from "../../../components/WithAuth"; +import AppBar from "@/components/layouts/AppBar"; +import Layout from "@/components/layouts/Layout"; +import LineDivider from "@/components/elements/LineDivider"; +import WithAuth from "@/components/auth/WithAuth"; import { useState } from "react"; const Row = ({ label, children }) => ( diff --git a/src/pages/my/transactions/index.js b/src/pages/my/transactions/index.js index 7792c647..b1e31661 100644 --- a/src/pages/my/transactions/index.js +++ b/src/pages/my/transactions/index.js @@ -1,14 +1,14 @@ import { useRouter } from "next/router"; -import AppBar from "../../../components/AppBar"; -import BottomPopup from "../../../components/BottomPopup"; -import Layout from "../../../components/Layout"; -import WithAuth from "../../../components/WithAuth"; +import AppBar from "@/components/layouts/AppBar"; +import BottomPopup from "@/components/elements/BottomPopup"; +import Layout from "@/components/layouts/Layout"; +import WithAuth from "@/components/auth/WithAuth"; import { useEffect, useState } from "react"; -import { useAuth } from "../../../helpers/auth"; -import apiOdoo from "../../../helpers/apiOdoo"; -import currencyFormat from "../../../helpers/currencyFormat"; +import { useAuth } from "@/core/utils/auth"; +import apiOdoo from "@/core/utils/apiOdoo"; +import currencyFormat from "@/core/utils/currencyFormat"; import { EllipsisVerticalIcon } from "@heroicons/react/24/outline"; -import Link from "../../../components/Link"; +import Link from "@/components/elements/Link"; export default function Transactions() { const [ auth ] = useAuth(); diff --git a/src/pages/register.js b/src/pages/register.js index 46938d0b..046ae686 100644 --- a/src/pages/register.js +++ b/src/pages/register.js @@ -1,12 +1,12 @@ import axios from "axios"; import Head from "next/head"; import Image from "next/image"; -import Link from "../components/Link"; +import Link from "@/components/elements/Link"; import { useEffect, useState } from "react"; -import Alert from "../components/Alert"; -import Layout from "../components/Layout"; -import Spinner from "../components/Spinner"; -import Logo from "../images/logo.png"; +import Alert from "@/components/elements/Alert"; +import Layout from "@/components/layouts/Layout"; +import Spinner from "@/components/elements/Spinner"; +import Logo from "@/images/logo.png"; export default function Login() { const [email, setEmail] = useState(''); diff --git a/src/pages/shop/brands.js b/src/pages/shop/brands.js deleted file mode 100644 index d82fc31d..00000000 --- a/src/pages/shop/brands.js +++ /dev/null @@ -1,79 +0,0 @@ -import Header from "../../components/Header"; -import apiOdoo from "../../helpers/apiOdoo"; -import InfiniteScroll from "react-infinite-scroll-component"; -import { useEffect, useState } from "react"; -import Spinner from "../../components/Spinner"; -import Layout from "../../components/Layout"; -import ManufactureCard from "../../components/ManufactureCard"; -import Footer from "../../components/Footer"; - -export async function getServerSideProps() { - let initialManufactures = await apiOdoo('GET', '/api/v1/manufacture?limit=31'); - return {props: {initialManufactures}}; -} - -export default function Brands({ initialManufactures }) { - const [manufactures, setManufactures] = useState(initialManufactures.manufactures); - const [hasMoreManufacture, setHasMoreManufacture] = useState(true); - const [manufactureStartwith, setManufactureStartWith] = useState(''); - - const alpha = Array.from(Array(26)).map((e, i) => i + 65); - const alphabets = alpha.map((x) => String.fromCharCode(x)); - - const getMoreManufactures = async () => { - const name = manufactureStartwith != '' ? `${manufactureStartwith}%` : ''; - const result = await apiOdoo('GET', `/api/v1/manufacture?limit=30&offset=${manufactures.length}&name=${name}`); - setHasMoreManufacture(manufactures.length + 30 < result.manufacture_total) - setManufactures((manufactures) => [...manufactures, ...result.manufactures]); - }; - - const filterManufactureStartWith = (character) => { - setManufactures([]); - if (manufactureStartwith == character) { - setManufactureStartWith(''); - } else { - setManufactureStartWith(character); - } - }; - - useEffect(() => { - getMoreManufactures(); - }, [manufactureStartwith]); - - return ( - <> -
- -
-

Semua Brand di Indoteknik

-
- {alphabets.map((alphabet, index) => ( - - ))} -
- - -
- } - > - {manufactures?.map((manufacture, index) => ( - manufacture.name ? ( - - ) : '' - ))} - - - -