diff --git a/src/@core/layouts/HeaderLayout.js b/src/@core/layouts/HeaderLayout.js
index eebb2e36..b914eaa3 100644
--- a/src/@core/layouts/HeaderLayout.js
+++ b/src/@core/layouts/HeaderLayout.js
@@ -14,7 +14,7 @@ import {
import classnames from 'classnames';
import { ArrowUp } from 'react-feather';
import ScrollToTop from 'react-scroll-up';
-import { Navbar, Button } from 'reactstrap';
+import { Navbar, Button } from '../../components/ui/index';
// ** Configs
import themeConfig from '@configs/themeConfig';
diff --git a/src/@core/layouts/HorizontalLayout.js b/src/@core/layouts/HorizontalLayout.js
index be51ca14..80116494 100644
--- a/src/@core/layouts/HorizontalLayout.js
+++ b/src/@core/layouts/HorizontalLayout.js
@@ -1,123 +1,128 @@
// ** React Imports
-import { useState, useEffect } from 'react'
-import { Link } from 'react-router-dom'
+import { useState, useEffect } from 'react';
+import { Link } from 'react-router-dom';
// ** Store & Actions
-import { useSelector, useDispatch } from 'react-redux'
-import { handleMenuHidden, handleContentWidth } from '@store/actions/layout'
+import { useSelector, useDispatch } from 'react-redux';
+import { handleMenuHidden, handleContentWidth } from '@store/actions/layout';
// ** Third Party Components
-import classnames from 'classnames'
-import { ArrowUp } from 'react-feather'
-import ScrollToTop from 'react-scroll-up'
-import { Navbar, NavItem, Button } from 'reactstrap'
+import classnames from 'classnames';
+import { ArrowUp } from 'react-feather';
+import ScrollToTop from 'react-scroll-up';
+import { Navbar, NavItem, Button } from '../../components/ui/index';
// ** Configs
-import themeConfig from '@configs/themeConfig'
+import themeConfig from '@configs/themeConfig';
// ** Custom Components
-import Customizer from '@components/customizer'
-import NavbarComponent from './components/navbar'
-import FooterComponent from './components/footer'
-import MenuComponent from './components/menu/horizontal-menu'
+import Customizer from '@components/customizer';
+import NavbarComponent from './components/navbar';
+import FooterComponent from './components/footer';
+import MenuComponent from './components/menu/horizontal-menu';
// ** Custom Hooks
-import { useRTL } from '@hooks/useRTL'
-import { useSkin } from '@hooks/useSkin'
-import { useNavbarType } from '@hooks/useNavbarType'
-import { useFooterType } from '@hooks/useFooterType'
-import { useNavbarColor } from '@hooks/useNavbarColor'
+import { useRTL } from '@hooks/useRTL';
+import { useSkin } from '@hooks/useSkin';
+import { useNavbarType } from '@hooks/useNavbarType';
+import { useFooterType } from '@hooks/useFooterType';
+import { useNavbarColor } from '@hooks/useNavbarColor';
// ** Styles
-import '@styles/base/core/menu/menu-types/horizontal-menu.scss'
+import '@styles/base/core/menu/menu-types/horizontal-menu.scss';
const HorizontalLayout = props => {
// ** Props
- const { children, navbar, footer, menu, currentActiveItem, routerProps } = props
+ const { children, navbar, footer, menu, currentActiveItem, routerProps } =
+ props;
// ** Hooks
- const [skin, setSkin] = useSkin()
- const [isRtl, setIsRtl] = useRTL()
- const [navbarType, setNavbarType] = useNavbarType()
- const [footerType, setFooterType] = useFooterType()
- const [navbarColor, setNavbarColor] = useNavbarColor()
+ const [skin, setSkin] = useSkin();
+ const [isRtl, setIsRtl] = useRTL();
+ const [navbarType, setNavbarType] = useNavbarType();
+ const [footerType, setFooterType] = useFooterType();
+ const [navbarColor, setNavbarColor] = useNavbarColor();
// ** States
- const [isMounted, setIsMounted] = useState(false)
- const [navbarScrolled, setNavbarScrolled] = useState(false)
+ const [isMounted, setIsMounted] = useState(false);
+ const [navbarScrolled, setNavbarScrolled] = useState(false);
// ** Store Vars
- const dispatch = useDispatch()
- const layoutStore = useSelector(state => state.layout)
+ const dispatch = useDispatch();
+ const layoutStore = useSelector(state => state.layout);
// ** Vars
- const contentWidth = layoutStore.contentWidth
- const isHidden = layoutStore.menuHidden
+ const contentWidth = layoutStore.contentWidth;
+ const isHidden = layoutStore.menuHidden;
// ** Handles Content Width
- const setContentWidth = val => dispatch(handleContentWidth(val))
+ const setContentWidth = val => dispatch(handleContentWidth(val));
// ** Handles Content Width
- const setIsHidden = val => dispatch(handleMenuHidden(val))
+ const setIsHidden = val => dispatch(handleMenuHidden(val));
// ** UseEffect Cleanup
const cleanup = () => {
- setIsMounted(false)
- setNavbarScrolled(false)
- }
+ setIsMounted(false);
+ setNavbarScrolled(false);
+ };
//** ComponentDidMount
useEffect(() => {
- setIsMounted(true)
+ setIsMounted(true);
window.addEventListener('scroll', function () {
if (window.pageYOffset > 65 && navbarScrolled === false) {
- setNavbarScrolled(true)
+ setNavbarScrolled(true);
}
if (window.pageYOffset < 65) {
- setNavbarScrolled(false)
+ setNavbarScrolled(false);
}
- })
- return () => cleanup()
- }, [])
+ });
+ return () => cleanup();
+ }, []);
// ** Vars
const footerClasses = {
static: 'footer-static',
sticky: 'footer-fixed',
hidden: 'footer-hidden'
- }
+ };
const navbarWrapperClasses = {
floating: 'navbar-floating',
sticky: 'navbar-sticky',
static: 'navbar-static'
- }
+ };
const navbarClasses = {
floating: 'floating-nav',
sticky: 'fixed-top'
- }
+ };
- const bgColorCondition = navbarColor !== '' && navbarColor !== 'light' && navbarColor !== 'white'
+ const bgColorCondition =
+ navbarColor !== '' && navbarColor !== 'light' && navbarColor !== 'white';
if (!isMounted) {
- return null
+ return null;
}
return (
{!navbar && (
@@ -145,12 +150,24 @@ const HorizontalLayout = props => {
expand='sm'
light={skin !== 'dark'}
dark={skin === 'dark' || bgColorCondition}
- className={classnames(`header-navbar navbar-horizontal navbar-shadow menu-border`, {
- [navbarClasses[navbarType]]: navbarType !== 'static',
- 'floating-nav': (!navbarClasses[navbarType] && navbarType !== 'static') || navbarType === 'floating'
- })}
+ className={classnames(
+ `header-navbar navbar-horizontal navbar-shadow menu-border`,
+ {
+ [navbarClasses[navbarType]]: navbarType !== 'static',
+ 'floating-nav':
+ (!navbarClasses[navbarType] && navbarType !== 'static') ||
+ navbarType === 'floating'
+ }
+ )}
>
- {menu ? menu : }
+ {menu ? (
+ menu
+ ) : (
+
+ )}
) : null}
@@ -180,11 +197,21 @@ const HorizontalLayout = props => {
/>
) : null}
{themeConfig.layout.scrollTop === true ? (
@@ -197,6 +224,6 @@ const HorizontalLayout = props => {
) : null}
- )
-}
-export default HorizontalLayout
+ );
+};
+export default HorizontalLayout;
diff --git a/src/@core/layouts/VerticalLayout.js b/src/@core/layouts/VerticalLayout.js
index 43145f82..55ba971d 100644
--- a/src/@core/layouts/VerticalLayout.js
+++ b/src/@core/layouts/VerticalLayout.js
@@ -1,129 +1,135 @@
// ** React Imports
-import { useState, useEffect } from 'react'
-import { useLocation } from 'react-router-dom'
+import { useState, useEffect } from 'react';
+import { useLocation } from 'react-router-dom';
// ** Store & Actions
-import { useSelector, useDispatch } from 'react-redux'
-import { handleMenuCollapsed, handleContentWidth, handleMenuHidden } from '@store/actions/layout'
+import { useSelector, useDispatch } from 'react-redux';
+import {
+ handleMenuCollapsed,
+ handleContentWidth,
+ handleMenuHidden
+} from '@store/actions/layout';
// ** Third Party Components
-import classnames from 'classnames'
-import { ArrowUp } from 'react-feather'
-import ScrollToTop from 'react-scroll-up'
-import { Navbar, Button } from 'reactstrap'
+import classnames from 'classnames';
+import { ArrowUp } from 'react-feather';
+import ScrollToTop from 'react-scroll-up';
+import { Navbar, Button } from '../../components/ui/index';
// ** Configs
-import themeConfig from '@configs/themeConfig'
+import themeConfig from '@configs/themeConfig';
// ** Custom Components
-import Customizer from '@components/customizer'
-import FooterComponent from './components/footer'
-import NavbarComponent from './components/navbar'
-import SidebarComponent from './components/menu/vertical-menu'
+import Customizer from '@components/customizer';
+import FooterComponent from './components/footer';
+import NavbarComponent from './components/navbar';
+import SidebarComponent from './components/menu/vertical-menu';
// ** Custom Hooks
-import { useRTL } from '@hooks/useRTL'
-import { useSkin } from '@hooks/useSkin'
-import { useNavbarType } from '@hooks/useNavbarType'
-import { useFooterType } from '@hooks/useFooterType'
-import { useNavbarColor } from '@hooks/useNavbarColor'
+import { useRTL } from '@hooks/useRTL';
+import { useSkin } from '@hooks/useSkin';
+import { useNavbarType } from '@hooks/useNavbarType';
+import { useFooterType } from '@hooks/useFooterType';
+import { useNavbarColor } from '@hooks/useNavbarColor';
// ** Styles
-import '@styles/base/core/menu/menu-types/vertical-menu.scss'
-import '@styles/base/core/menu/menu-types/vertical-overlay-menu.scss'
+import '@styles/base/core/menu/menu-types/vertical-menu.scss';
+import '@styles/base/core/menu/menu-types/vertical-overlay-menu.scss';
const VerticalLayout = props => {
// ** Props
- const { children, navbar, footer, menu, routerProps, currentActiveItem } = props
+ const { children, navbar, footer, menu, routerProps, currentActiveItem } =
+ props;
// ** Hooks
- const [skin, setSkin] = useSkin()
- const [isRtl, setIsRtl] = useRTL()
- const [navbarType, setNavbarType] = useNavbarType()
- const [footerType, setFooterType] = useFooterType()
- const [navbarColor, setNavbarColor] = useNavbarColor()
+ const [skin, setSkin] = useSkin();
+ const [isRtl, setIsRtl] = useRTL();
+ const [navbarType, setNavbarType] = useNavbarType();
+ const [footerType, setFooterType] = useFooterType();
+ const [navbarColor, setNavbarColor] = useNavbarColor();
// ** States
- const [isMounted, setIsMounted] = useState(false)
- const [menuVisibility, setMenuVisibility] = useState(false)
- const [windowWidth, setWindowWidth] = useState(window.innerWidth)
+ const [isMounted, setIsMounted] = useState(false);
+ const [menuVisibility, setMenuVisibility] = useState(false);
+ const [windowWidth, setWindowWidth] = useState(window.innerWidth);
// ** Store Vars
- const dispatch = useDispatch()
- const layoutStore = useSelector(state => state.layout)
+ const dispatch = useDispatch();
+ const layoutStore = useSelector(state => state.layout);
// ** Update Window Width
const handleWindowWidth = () => {
- setWindowWidth(window.innerWidth)
- }
+ setWindowWidth(window.innerWidth);
+ };
// ** Vars
- const location = useLocation()
- const contentWidth = layoutStore.contentWidth
- const menuCollapsed = layoutStore.menuCollapsed
- const isHidden = layoutStore.menuHidden
+ const location = useLocation();
+ const contentWidth = layoutStore.contentWidth;
+ const menuCollapsed = layoutStore.menuCollapsed;
+ const isHidden = layoutStore.menuHidden;
// ** Toggles Menu Collapsed
- const setMenuCollapsed = val => dispatch(handleMenuCollapsed(val))
+ const setMenuCollapsed = val => dispatch(handleMenuCollapsed(val));
// ** Handles Content Width
- const setContentWidth = val => dispatch(handleContentWidth(val))
+ const setContentWidth = val => dispatch(handleContentWidth(val));
// ** Handles Content Width
- const setIsHidden = val => dispatch(handleMenuHidden(val))
+ const setIsHidden = val => dispatch(handleMenuHidden(val));
//** This function will detect the Route Change and will hide the menu on menu item click
useEffect(() => {
if (menuVisibility && windowWidth < 1200) {
- setMenuVisibility(false)
+ setMenuVisibility(false);
}
- }, [location])
+ }, [location]);
//** Sets Window Size & Layout Props
useEffect(() => {
if (window !== undefined) {
- window.addEventListener('resize', handleWindowWidth)
+ window.addEventListener('resize', handleWindowWidth);
}
- }, [windowWidth])
+ }, [windowWidth]);
//** ComponentDidMount
useEffect(() => {
- setIsMounted(true)
- return () => setIsMounted(false)
- }, [])
+ setIsMounted(true);
+ return () => setIsMounted(false);
+ }, []);
// ** Vars
const footerClasses = {
static: 'footer-static',
sticky: 'footer-fixed',
hidden: 'footer-hidden'
- }
+ };
const navbarWrapperClasses = {
floating: 'navbar-floating',
sticky: 'navbar-sticky',
static: 'navbar-static',
hidden: 'navbar-hidden'
- }
+ };
const navbarClasses = {
floating: 'floating-nav',
sticky: 'fixed-top',
static: 'navbar-static-top',
hidden: 'd-none'
- }
+ };
- const bgColorCondition = navbarColor !== '' && navbarColor !== 'light' && navbarColor !== 'white'
+ const bgColorCondition =
+ navbarColor !== '' && navbarColor !== 'light' && navbarColor !== 'white';
if (!isMounted) {
- return null
+ return null;
}
return (
= 1200,
@@ -157,11 +163,21 @@ const VerticalLayout = props => {
dark={skin === 'dark' || bgColorCondition}
color={bgColorCondition ? navbarColor : undefined}
className={classnames(
- `header-navbar navbar align-items-center ${navbarClasses[navbarType] || 'floating-nav'} navbar-shadow`
+ `header-navbar navbar align-items-center ${
+ navbarClasses[navbarType] || 'floating-nav'
+ } navbar-shadow`
)}
>
- {navbar ? navbar : }
+ {navbar ? (
+ navbar
+ ) : (
+
+ )}
{children}
@@ -201,11 +217,21 @@ const VerticalLayout = props => {
/>
) : null}
{themeConfig.layout.scrollTop === true ? (
@@ -218,7 +244,7 @@ const VerticalLayout = props => {
) : null}
- )
-}
+ );
+};
-export default VerticalLayout
+export default VerticalLayout;
diff --git a/src/@core/layouts/components/menu/vertical-menu/VerticalNavMenuGroup.js b/src/@core/layouts/components/menu/vertical-menu/VerticalNavMenuGroup.js
index 233848bb..049df68b 100644
--- a/src/@core/layouts/components/menu/vertical-menu/VerticalNavMenuGroup.js
+++ b/src/@core/layouts/components/menu/vertical-menu/VerticalNavMenuGroup.js
@@ -4,7 +4,7 @@ import { Link, useLocation } from 'react-router-dom';
// ** Third Party Components
import classnames from 'classnames';
-import { Collapse, Badge } from 'reactstrap';
+import { Collapse, Badge } from '../../../../../components/ui/index';
// ** Vertical Menu Items Component
import VerticalNavMenuItems from './VerticalNavMenuItems';
diff --git a/src/@core/layouts/components/menu/vertical-menu/VerticalNavMenuLink.js b/src/@core/layouts/components/menu/vertical-menu/VerticalNavMenuLink.js
index c26f990a..43a5f810 100644
--- a/src/@core/layouts/components/menu/vertical-menu/VerticalNavMenuLink.js
+++ b/src/@core/layouts/components/menu/vertical-menu/VerticalNavMenuLink.js
@@ -9,7 +9,7 @@ import classnames from 'classnames';
import { useEffect } from 'react';
import { matchPath, NavLink, useLocation } from 'react-router-dom';
// ** Third Party Components
-import { Badge } from 'reactstrap';
+import { Badge } from '../../../../../components/ui/index';
const VerticalNavMenuLink = ({
item,
diff --git a/src/components/ui/collapse/index.tsx b/src/components/ui/collapse/index.tsx
new file mode 100644
index 00000000..4c6a0473
--- /dev/null
+++ b/src/components/ui/collapse/index.tsx
@@ -0,0 +1,23 @@
+import { ReactNode } from 'react';
+import { Collapse } from 'reactstrap';
+
+interface Props {
+ children: ReactNode;
+ className?: string;
+ isOpen?: boolean;
+}
+
+/**
+ *
+ * @param children: ReactNode
+ * @param className?:string
+ * @param isOpen?:boolean
+ */
+
+export default function CustomCollapse({ children, className, isOpen }: Props) {
+ return (
+
+ {children}
+
+ );
+}
diff --git a/src/components/ui/custominput/index.tsx b/src/components/ui/custominput/index.tsx
index 996d34f0..61288ed6 100644
--- a/src/components/ui/custominput/index.tsx
+++ b/src/components/ui/custominput/index.tsx
@@ -1,5 +1,3 @@
-'use client';
-import { read } from 'fs';
import { ChangeEvent, MouseEventHandler, ReactNode } from 'react';
import { CustomInput } from 'reactstrap';
@@ -48,7 +46,7 @@ export default function CustomInputs({
name,
readOnly,
type,
- inline = false,
+ inline,
bsSize
}: Props) {
return (
diff --git a/src/components/ui/index.tsx b/src/components/ui/index.tsx
index 98f3f400..76eb7f20 100644
--- a/src/components/ui/index.tsx
+++ b/src/components/ui/index.tsx
@@ -7,11 +7,13 @@ import CardTitle from './card/CustomCardTitle';
import CardHeader from './card/CustomCardHeader';
import Col from './Col/index';
import From from './form/CustomForm';
+import Collapse from './collapse/index';
import FormGroup from './form/CustomFormGroup';
import FormFeedback from './form/CustomFormFeedback';
import Input from './input';
import Label from './label';
import Row from './row';
+import Navbar from './nav/CustomNavbar';
import InputGroup from './input/CustomInputGroup';
import InputGroupText from './input/CustomInputGroupText';
import Spinner from './spinner';
@@ -64,5 +66,7 @@ export {
ModalBody,
ModalFooter,
Form,
- Media
+ Media,
+ Collapse,
+ Navbar
};
diff --git a/src/components/ui/input/index.tsx b/src/components/ui/input/index.tsx
index 3072c738..57aaa63e 100644
--- a/src/components/ui/input/index.tsx
+++ b/src/components/ui/input/index.tsx
@@ -27,6 +27,28 @@ interface Props {
onKeyPress?: (event: React.KeyboardEvent) => void;
}
+/**
+ * @param children: ReactNode
+ * @param className?:string
+ * @param readOnly?:boolean default false
+ * @param checked?:boolean
+ * @param label?:string
+ * @param id?:string
+ * @param onClick?:MouseEventHandler
+ * @param onChange?:MouseEventHandler
+ * @param value?:any
+ * @param name?:string
+ * @param type?:string
+ * @param bsSize?: "lg" | "sm"
+ * @param inline?:boolean default
+ * @param placeholder?:string
+ * @param disabled?:boolean default false
+ * @param onBlur?:(event: React.FocusEvent) => void
+ * @param onKeyPress?:(event: React.KeyboardEvent) => void
+ * @param ref?: ForwardedRef
+ *
+ */
+
const CustomInput = forwardRef(
(
{
diff --git a/src/components/ui/nav/CustomNavLink.tsx b/src/components/ui/nav/CustomNavLink.tsx
index 0e58ef76..68159f02 100644
--- a/src/components/ui/nav/CustomNavLink.tsx
+++ b/src/components/ui/nav/CustomNavLink.tsx
@@ -15,7 +15,7 @@ export default function CustomNavLink({
onClick
}: Props) {
return (
-
+
{children}
);
diff --git a/src/components/ui/nav/CustomNavbar.tsx b/src/components/ui/nav/CustomNavbar.tsx
new file mode 100644
index 00000000..b60048de
--- /dev/null
+++ b/src/components/ui/nav/CustomNavbar.tsx
@@ -0,0 +1,43 @@
+import { ReactNode } from 'react';
+import { Navbar } from 'reactstrap';
+import { StringLocale } from 'yup/lib/locale';
+
+interface Props {
+ children: ReactNode;
+ tag?: String;
+ expand?: 'sm' | 'md' | 'lg' | 'xl';
+ light?: boolean;
+ dark?: boolean;
+ className?: string;
+}
+
+/**
+ *
+ * @param children: ReactNode
+ * @param tag?: String
+ * @param expand?: 'sm' | 'md'| 'lg' | 'xl'
+ * @param light?: boolean
+ * @param dark?: boolean
+ * @param className?: string
+ */
+
+export default function CustomNavbar({
+ children,
+ tag,
+ expand,
+ light,
+ dark,
+ className
+}: Props) {
+ return (
+
+ {children}
+
+ );
+}
diff --git a/src/containers/cstmrService/faq/FaqContainer.js b/src/containers/cstmrService/faq/FaqContainer.js
index aa2e7ce6..a05867a4 100644
--- a/src/containers/cstmrService/faq/FaqContainer.js
+++ b/src/containers/cstmrService/faq/FaqContainer.js
@@ -1,6 +1,7 @@
import { useCallback, useEffect, useLayoutEffect, useState } from 'react';
import { useSelector, useDispatch } from 'react-redux';
-import { Button, TabContent, TabPane } from 'reactstrap';
+import { TabContent, TabPane } from '../../../components/ui/index';
+import { Button } from 'reactstrap';
import AppCollapse from '@components/app-collapse';
import {
LIST,
diff --git a/src/views/weather/WeatherView.js b/src/views/weather/WeatherView.js
index aefd8866..c56e4551 100644
--- a/src/views/weather/WeatherView.js
+++ b/src/views/weather/WeatherView.js
@@ -2,7 +2,12 @@ import { WINDY_KEY } from '../../configs/constants';
import React, { useEffect, useState } from 'react';
import { Search } from 'react-feather';
import '../../assets/css/custom.css';
-import { Input, InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';
+import {
+ Input,
+ InputGroup,
+ InputGroupAddon,
+ InputGroupText
+} from '../../components/ui/index';
import { useDispatch, useSelector } from 'react-redux';
import { laancApi } from '../../modules/laanc/apis/laancApi';