diff --git a/app/(admin)/admin/content/audio-visual/components/audio-visual-tabs.tsx b/app/[locale]/(admin)/admin/content/audio-visual/components/audio-visual-tabs.tsx
similarity index 100%
rename from app/(admin)/admin/content/audio-visual/components/audio-visual-tabs.tsx
rename to app/[locale]/(admin)/admin/content/audio-visual/components/audio-visual-tabs.tsx
diff --git a/app/(admin)/admin/content/audio-visual/components/columns.tsx b/app/[locale]/(admin)/admin/content/audio-visual/components/columns.tsx
similarity index 100%
rename from app/(admin)/admin/content/audio-visual/components/columns.tsx
rename to app/[locale]/(admin)/admin/content/audio-visual/components/columns.tsx
diff --git a/app/(admin)/admin/content/audio-visual/components/pending-approval-columns.tsx b/app/[locale]/(admin)/admin/content/audio-visual/components/pending-approval-columns.tsx
similarity index 100%
rename from app/(admin)/admin/content/audio-visual/components/pending-approval-columns.tsx
rename to app/[locale]/(admin)/admin/content/audio-visual/components/pending-approval-columns.tsx
diff --git a/app/(admin)/admin/content/audio-visual/components/pending-approval-table.tsx b/app/[locale]/(admin)/admin/content/audio-visual/components/pending-approval-table.tsx
similarity index 100%
rename from app/(admin)/admin/content/audio-visual/components/pending-approval-table.tsx
rename to app/[locale]/(admin)/admin/content/audio-visual/components/pending-approval-table.tsx
diff --git a/app/(admin)/admin/content/audio-visual/components/table-video.tsx b/app/[locale]/(admin)/admin/content/audio-visual/components/table-video.tsx
similarity index 100%
rename from app/(admin)/admin/content/audio-visual/components/table-video.tsx
rename to app/[locale]/(admin)/admin/content/audio-visual/components/table-video.tsx
diff --git a/app/(admin)/admin/content/audio-visual/create/page.tsx b/app/[locale]/(admin)/admin/content/audio-visual/create/page.tsx
similarity index 100%
rename from app/(admin)/admin/content/audio-visual/create/page.tsx
rename to app/[locale]/(admin)/admin/content/audio-visual/create/page.tsx
diff --git a/app/(admin)/admin/content/audio-visual/detail/[id]/page.tsx b/app/[locale]/(admin)/admin/content/audio-visual/detail/[id]/page.tsx
similarity index 100%
rename from app/(admin)/admin/content/audio-visual/detail/[id]/page.tsx
rename to app/[locale]/(admin)/admin/content/audio-visual/detail/[id]/page.tsx
diff --git a/app/(admin)/admin/content/audio-visual/layout.tsx b/app/[locale]/(admin)/admin/content/audio-visual/layout.tsx
similarity index 100%
rename from app/(admin)/admin/content/audio-visual/layout.tsx
rename to app/[locale]/(admin)/admin/content/audio-visual/layout.tsx
diff --git a/app/(admin)/admin/content/audio-visual/page.tsx b/app/[locale]/(admin)/admin/content/audio-visual/page.tsx
similarity index 100%
rename from app/(admin)/admin/content/audio-visual/page.tsx
rename to app/[locale]/(admin)/admin/content/audio-visual/page.tsx
diff --git a/app/(admin)/admin/content/audio-visual/update/[id]/page.tsx b/app/[locale]/(admin)/admin/content/audio-visual/update/[id]/page.tsx
similarity index 100%
rename from app/(admin)/admin/content/audio-visual/update/[id]/page.tsx
rename to app/[locale]/(admin)/admin/content/audio-visual/update/[id]/page.tsx
diff --git a/app/(admin)/admin/content/audio/components/audio-tabs.tsx b/app/[locale]/(admin)/admin/content/audio/components/audio-tabs.tsx
similarity index 100%
rename from app/(admin)/admin/content/audio/components/audio-tabs.tsx
rename to app/[locale]/(admin)/admin/content/audio/components/audio-tabs.tsx
diff --git a/app/(admin)/admin/content/audio/components/columns.tsx b/app/[locale]/(admin)/admin/content/audio/components/columns.tsx
similarity index 100%
rename from app/(admin)/admin/content/audio/components/columns.tsx
rename to app/[locale]/(admin)/admin/content/audio/components/columns.tsx
diff --git a/app/(admin)/admin/content/audio/components/pending-approval-columns.tsx b/app/[locale]/(admin)/admin/content/audio/components/pending-approval-columns.tsx
similarity index 100%
rename from app/(admin)/admin/content/audio/components/pending-approval-columns.tsx
rename to app/[locale]/(admin)/admin/content/audio/components/pending-approval-columns.tsx
diff --git a/app/(admin)/admin/content/audio/components/pending-approval-table.tsx b/app/[locale]/(admin)/admin/content/audio/components/pending-approval-table.tsx
similarity index 100%
rename from app/(admin)/admin/content/audio/components/pending-approval-table.tsx
rename to app/[locale]/(admin)/admin/content/audio/components/pending-approval-table.tsx
diff --git a/app/(admin)/admin/content/audio/components/table-audio.tsx b/app/[locale]/(admin)/admin/content/audio/components/table-audio.tsx
similarity index 100%
rename from app/(admin)/admin/content/audio/components/table-audio.tsx
rename to app/[locale]/(admin)/admin/content/audio/components/table-audio.tsx
diff --git a/app/(admin)/admin/content/audio/create/page.tsx b/app/[locale]/(admin)/admin/content/audio/create/page.tsx
similarity index 100%
rename from app/(admin)/admin/content/audio/create/page.tsx
rename to app/[locale]/(admin)/admin/content/audio/create/page.tsx
diff --git a/app/(admin)/admin/content/audio/detail/[id]/page.tsx b/app/[locale]/(admin)/admin/content/audio/detail/[id]/page.tsx
similarity index 100%
rename from app/(admin)/admin/content/audio/detail/[id]/page.tsx
rename to app/[locale]/(admin)/admin/content/audio/detail/[id]/page.tsx
diff --git a/app/(admin)/admin/content/audio/layout.tsx b/app/[locale]/(admin)/admin/content/audio/layout.tsx
similarity index 100%
rename from app/(admin)/admin/content/audio/layout.tsx
rename to app/[locale]/(admin)/admin/content/audio/layout.tsx
diff --git a/app/(admin)/admin/content/audio/page.tsx b/app/[locale]/(admin)/admin/content/audio/page.tsx
similarity index 100%
rename from app/(admin)/admin/content/audio/page.tsx
rename to app/[locale]/(admin)/admin/content/audio/page.tsx
diff --git a/app/(admin)/admin/content/audio/update/[id]/page.tsx b/app/[locale]/(admin)/admin/content/audio/update/[id]/page.tsx
similarity index 100%
rename from app/(admin)/admin/content/audio/update/[id]/page.tsx
rename to app/[locale]/(admin)/admin/content/audio/update/[id]/page.tsx
diff --git a/app/(admin)/admin/content/document/components/columns.tsx b/app/[locale]/(admin)/admin/content/document/components/columns.tsx
similarity index 100%
rename from app/(admin)/admin/content/document/components/columns.tsx
rename to app/[locale]/(admin)/admin/content/document/components/columns.tsx
diff --git a/app/(admin)/admin/content/document/components/document-tabs.tsx b/app/[locale]/(admin)/admin/content/document/components/document-tabs.tsx
similarity index 100%
rename from app/(admin)/admin/content/document/components/document-tabs.tsx
rename to app/[locale]/(admin)/admin/content/document/components/document-tabs.tsx
diff --git a/app/(admin)/admin/content/document/components/pending-approval-columns.tsx b/app/[locale]/(admin)/admin/content/document/components/pending-approval-columns.tsx
similarity index 100%
rename from app/(admin)/admin/content/document/components/pending-approval-columns.tsx
rename to app/[locale]/(admin)/admin/content/document/components/pending-approval-columns.tsx
diff --git a/app/(admin)/admin/content/document/components/pending-approval-table.tsx b/app/[locale]/(admin)/admin/content/document/components/pending-approval-table.tsx
similarity index 100%
rename from app/(admin)/admin/content/document/components/pending-approval-table.tsx
rename to app/[locale]/(admin)/admin/content/document/components/pending-approval-table.tsx
diff --git a/app/(admin)/admin/content/document/components/table-teks.tsx b/app/[locale]/(admin)/admin/content/document/components/table-teks.tsx
similarity index 100%
rename from app/(admin)/admin/content/document/components/table-teks.tsx
rename to app/[locale]/(admin)/admin/content/document/components/table-teks.tsx
diff --git a/app/(admin)/admin/content/document/create/page.tsx b/app/[locale]/(admin)/admin/content/document/create/page.tsx
similarity index 100%
rename from app/(admin)/admin/content/document/create/page.tsx
rename to app/[locale]/(admin)/admin/content/document/create/page.tsx
diff --git a/app/(admin)/admin/content/document/detail/[id]/page.tsx b/app/[locale]/(admin)/admin/content/document/detail/[id]/page.tsx
similarity index 100%
rename from app/(admin)/admin/content/document/detail/[id]/page.tsx
rename to app/[locale]/(admin)/admin/content/document/detail/[id]/page.tsx
diff --git a/app/(admin)/admin/content/document/layout.tsx b/app/[locale]/(admin)/admin/content/document/layout.tsx
similarity index 100%
rename from app/(admin)/admin/content/document/layout.tsx
rename to app/[locale]/(admin)/admin/content/document/layout.tsx
diff --git a/app/(admin)/admin/content/document/page.tsx b/app/[locale]/(admin)/admin/content/document/page.tsx
similarity index 100%
rename from app/(admin)/admin/content/document/page.tsx
rename to app/[locale]/(admin)/admin/content/document/page.tsx
diff --git a/app/(admin)/admin/content/document/update/[id]/page.tsx b/app/[locale]/(admin)/admin/content/document/update/[id]/page.tsx
similarity index 100%
rename from app/(admin)/admin/content/document/update/[id]/page.tsx
rename to app/[locale]/(admin)/admin/content/document/update/[id]/page.tsx
diff --git a/app/(admin)/admin/content/image/components/columns.tsx b/app/[locale]/(admin)/admin/content/image/components/columns.tsx
similarity index 100%
rename from app/(admin)/admin/content/image/components/columns.tsx
rename to app/[locale]/(admin)/admin/content/image/components/columns.tsx
diff --git a/app/(admin)/admin/content/image/components/image-tabs.tsx b/app/[locale]/(admin)/admin/content/image/components/image-tabs.tsx
similarity index 100%
rename from app/(admin)/admin/content/image/components/image-tabs.tsx
rename to app/[locale]/(admin)/admin/content/image/components/image-tabs.tsx
diff --git a/app/(admin)/admin/content/image/components/pending-approval-columns.tsx b/app/[locale]/(admin)/admin/content/image/components/pending-approval-columns.tsx
similarity index 100%
rename from app/(admin)/admin/content/image/components/pending-approval-columns.tsx
rename to app/[locale]/(admin)/admin/content/image/components/pending-approval-columns.tsx
diff --git a/app/(admin)/admin/content/image/components/pending-approval-table.tsx b/app/[locale]/(admin)/admin/content/image/components/pending-approval-table.tsx
similarity index 100%
rename from app/(admin)/admin/content/image/components/pending-approval-table.tsx
rename to app/[locale]/(admin)/admin/content/image/components/pending-approval-table.tsx
diff --git a/app/(admin)/admin/content/image/components/table-image.tsx b/app/[locale]/(admin)/admin/content/image/components/table-image.tsx
similarity index 100%
rename from app/(admin)/admin/content/image/components/table-image.tsx
rename to app/[locale]/(admin)/admin/content/image/components/table-image.tsx
diff --git a/app/(admin)/admin/content/image/create/page.tsx b/app/[locale]/(admin)/admin/content/image/create/page.tsx
similarity index 100%
rename from app/(admin)/admin/content/image/create/page.tsx
rename to app/[locale]/(admin)/admin/content/image/create/page.tsx
diff --git a/app/(admin)/admin/content/image/detail/[id]/page.tsx b/app/[locale]/(admin)/admin/content/image/detail/[id]/page.tsx
similarity index 100%
rename from app/(admin)/admin/content/image/detail/[id]/page.tsx
rename to app/[locale]/(admin)/admin/content/image/detail/[id]/page.tsx
diff --git a/app/(admin)/admin/content/image/layout.tsx b/app/[locale]/(admin)/admin/content/image/layout.tsx
similarity index 100%
rename from app/(admin)/admin/content/image/layout.tsx
rename to app/[locale]/(admin)/admin/content/image/layout.tsx
diff --git a/app/(admin)/admin/content/image/page-1.tsx b/app/[locale]/(admin)/admin/content/image/page-1.tsx
similarity index 100%
rename from app/(admin)/admin/content/image/page-1.tsx
rename to app/[locale]/(admin)/admin/content/image/page-1.tsx
diff --git a/app/(admin)/admin/content/image/page.tsx b/app/[locale]/(admin)/admin/content/image/page.tsx
similarity index 100%
rename from app/(admin)/admin/content/image/page.tsx
rename to app/[locale]/(admin)/admin/content/image/page.tsx
diff --git a/app/(admin)/admin/content/image/update/[id]/page.tsx b/app/[locale]/(admin)/admin/content/image/update/[id]/page.tsx
similarity index 100%
rename from app/(admin)/admin/content/image/update/[id]/page.tsx
rename to app/[locale]/(admin)/admin/content/image/update/[id]/page.tsx
diff --git a/app/(admin)/admin/dashboard/page.tsx b/app/[locale]/(admin)/admin/dashboard/page.tsx
similarity index 100%
rename from app/(admin)/admin/dashboard/page.tsx
rename to app/[locale]/(admin)/admin/dashboard/page.tsx
diff --git a/app/(admin)/admin/layout.tsx b/app/[locale]/(admin)/admin/layout.tsx
similarity index 100%
rename from app/(admin)/admin/layout.tsx
rename to app/[locale]/(admin)/admin/layout.tsx
diff --git a/app/[locale]/(admin)/layout.tsx b/app/[locale]/(admin)/layout.tsx
new file mode 100644
index 0000000..aa42048
--- /dev/null
+++ b/app/[locale]/(admin)/layout.tsx
@@ -0,0 +1,23 @@
+import LayoutProvider from "@/providers/layout.provider";
+import LayoutContentProvider from "@/providers/content.provider";
+import DashCodeSidebar from "@/components/partials/sidebar";
+import DashCodeFooter from "@/components/partials/footer";
+import ThemeCustomize from "@/components/partials/customizer";
+import DashCodeHeader from "@/components/partials/header";
+import MountedProvider from "@/providers/mounted.provider";
+
+const layout = async ({ children }: { children: React.ReactNode }) => {
+ return (
+
+
+ );
+};
+
+export default Logo;
diff --git a/components/maps/Map copy.js b/components/maps/Map copy.js
new file mode 100644
index 0000000..1c0197d
--- /dev/null
+++ b/components/maps/Map copy.js
@@ -0,0 +1,365 @@
+import Cookies from "js-cookie";
+import React, { Component } from "react";
+import Geocode from "react-geocode";
+import Autocomplete from "react-google-autocomplete";
+import {
+ GoogleMap,
+ InfoWindow,
+ Marker,
+ withGoogleMap,
+ withScriptjs,
+} from "react-google-maps";
+import { GoogleMapsAPI } from "./client-config";
+
+Geocode.setApiKey(GoogleMapsAPI);
+Geocode.enableDebug();
+
+class Map extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ address: "",
+ city: "",
+ area: "",
+ state: "",
+ mapPosition: {
+ lat: this.props.center.lat,
+ lng: this.props.center.lng,
+ },
+ markerPosition: {
+ lat: this.props.center.lat,
+ lng: this.props.center.lng,
+ },
+ };
+ }
+
+ /**
+ * Get the current address from the default map position and set those values in the state
+ */
+ componentDidMount() {
+ Geocode.fromLatLng(
+ this.state.mapPosition.lat,
+ this.state.mapPosition.lng,
+ ).then(
+ (response) => {
+ const address = response.results[0].formatted_address;
+ const addressArray = response.results[0].address_components;
+ const city = this.getCity(addressArray);
+ const area = this.getArea(addressArray);
+ const state = this.getState(addressArray);
+
+ console.log("city", city, area, state);
+
+ this.setState({
+ address: address || "",
+ area: area || "",
+ city: city || "",
+ state: state || "",
+ });
+ },
+ (error) => {
+ console.error(error);
+ },
+ );
+ }
+
+ /**
+ * Component should only update ( meaning re-render ), when the user selects the address, or drags the pin
+ *
+ * @param nextProps
+ * @param nextState
+ * @return {boolean}
+ */
+ shouldComponentUpdate(nextProps, nextState) {
+ if (
+ this.state.markerPosition.lat !== this.props.center.lat ||
+ this.state.address !== nextState.address ||
+ this.state.city !== nextState.city ||
+ this.state.area !== nextState.area ||
+ this.state.state !== nextState.state
+ ) {
+ return true;
+ }
+
+ if (this.props.center.lat == nextProps.center.lat) {
+ return false;
+ }
+ }
+
+ /**
+ * Get the city and set the city input value to the one selected
+ *
+ * @param addressArray
+ * @return {string}
+ */
+ getCity = (addressArray) => {
+ let city = "";
+
+ for (const element of addressArray) {
+ if (
+ element.types[0] &&
+ element.types[0] == "administrative_area_level_2"
+ ) {
+ city = element.long_name;
+ return city;
+ }
+ }
+ };
+ /**
+ * Get the area and set the area input value to the one selected
+ *
+ * @param addressArray
+ * @return {string}
+ */
+ getArea = (addressArray) => {
+ let area = "";
+
+ for (const element of addressArray) {
+ if (element.types[0]) {
+ for (let j = 0; j < element.types.length; j++) {
+ if (
+ element.types[j] == "sublocality_level_1" ||
+ element.types[j] == "locality"
+ ) {
+ area = element.long_name;
+ return area;
+ }
+ }
+ }
+ }
+ };
+ /**
+ * Get the address and set the address input value to the one selected
+ *
+ * @param addressArray
+ * @return {string}
+ */
+ getState = (addressArray) => {
+ let state = "";
+
+ for (let i = 0; i < addressArray.length; i++) {
+ for (const element of addressArray) {
+ if (
+ element.types[0] &&
+ element.types[0] == "administrative_area_level_1"
+ ) {
+ state = element.long_name;
+ return state;
+ }
+ }
+ }
+ };
+ /**
+ * And function for city,state and address input
+ * @param event
+ */
+ onChange = (event) => {
+ this.setState({
+ [event.target.name]: event.target.value,
+ });
+ };
+ /**
+ * This Event triggers when the marker window is closed
+ *
+ * @param event
+ */
+ onInfoWindowClose = () => {};
+ /**
+ * When the marker is dragged you get the lat and long using the functions available from event object.
+ * Use geocode to get the address, city, area and state from the lat and lng positions.
+ * And then set those values in the state.
+ *
+ * @param event
+ */
+ onMarkerDragEnd = (event) => {
+ const newLat = event.latLng.lat();
+ const newLng = event.latLng.lng();
+
+ Geocode.fromLatLng(newLat, newLng).then(
+ (response) => {
+ const address = response.results[0].formatted_address;
+ const addressArray = response.results[0].address_components;
+ const city = this.getCity(addressArray);
+ const area = this.getArea(addressArray);
+ const state = this.getState(addressArray);
+
+ this.setState({
+ address: address || "",
+ area: area || "",
+ city: city || "",
+ state: state || "",
+ markerPosition: {
+ lat: newLat,
+ lng: newLng,
+ },
+ mapPosition: {
+ lat: newLat,
+ lng: newLng,
+ },
+ });
+ Cookies.set("map_lat", `${newLat}`, {
+ expires: 1
+ });
+ Cookies.set("map_long", `${newLng}`, {
+ expires: 1
+ });
+ $(".input-location-schedule").val(address);
+ },
+ (error) => {
+ console.error(error);
+ },
+ );
+ };
+ /**
+ * When the user types an address in the search box
+ * @param place
+ */
+ onPlaceSelected = (place) => {
+ console.log("plc", place);
+ const address = place.formatted_address;
+ const addressArray = place.address_components;
+ const city = this.getCity(addressArray);
+ const area = this.getArea(addressArray);
+ const state = this.getState(addressArray);
+ const latValue = place.geometry.location.lat();
+ const lngValue = place.geometry.location.lng();
+
+ // Set these values in the state.
+ this.setState({
+ address: address || "",
+ area: area || "",
+ city: city || "",
+ state: state || "",
+ markerPosition: {
+ lat: latValue,
+ lng: lngValue,
+ },
+ mapPosition: {
+ lat: latValue,
+ lng: lngValue,
+ },
+ });
+ Cookies.set("map_lat", `${latValue}`, {
+ expires: 1
+ });
+ Cookies.set("map_long", `${lngValue}`, {
+ expires: 1
+ });
+ $(".input-location-schedule").val(address);
+ };
+ render() {
+ const AsyncMap = withScriptjs(
+ withGoogleMap(() => (
+ + {otpValidate} +
+ )} + + +{color}
++ Template Customizer +
++ Customize and preview in real time +
+{color}
+
+
+ ) : (
+ !isDesktop && (
+
+
+
+ )
+ );
+};
+
+export default HeaderLogo;
diff --git a/components/partials/header/header-search.tsx b/components/partials/header/header-search.tsx
new file mode 100644
index 0000000..7b32dc3
--- /dev/null
+++ b/components/partials/header/header-search.tsx
@@ -0,0 +1,222 @@
+'use client'
+import React from "react";
+import { Dialog, DialogContent, DialogTrigger } from "@/components/ui/dialog";
+import { X } from "lucide-react";
+import {
+ Command,
+ CommandEmpty,
+ CommandGroup,
+ CommandInput,
+ CommandItem,
+ CommandList,
+} from "@/components/ui/command";
+import { Button } from "@/components/ui/button";
+import { Link } from '@/i18n/routing';
+import { Icon } from "@/components/ui/icon";
+import { useConfig } from "@/hooks/use-config";
+const HeaderSearch = () => {
+ const [config] = useConfig();
+ if (config.layout === 'horizontal') return null
+ return (
+
+ );
+};
+
+export default HeaderSearch;
diff --git a/components/partials/header/horizontal-menu.tsx b/components/partials/header/horizontal-menu.tsx
new file mode 100644
index 0000000..6c09709
--- /dev/null
+++ b/components/partials/header/horizontal-menu.tsx
@@ -0,0 +1,127 @@
+'use client'
+import React from "react";
+import { cn } from "@/lib/utils";
+import { ChevronDown } from "lucide-react";
+import { Link, usePathname } from "@/components/navigation";
+import { useConfig } from '@/hooks/use-config'
+import { useTranslations } from 'next-intl';
+import { getHorizontalMenuList } from "@/lib/menus";
+import { Icon } from "@/components/ui/icon";
+import {
+ Menubar,
+ MenubarCheckboxItem,
+ MenubarContent,
+ MenubarItem,
+ MenubarMenu,
+ MenubarRadioGroup,
+ MenubarRadioItem,
+ MenubarSeparator,
+ MenubarShortcut,
+ MenubarSub,
+ MenubarSubContent,
+ MenubarSubTrigger,
+ MenubarTrigger,
+} from "@/components/ui/menubar"
+import { useMediaQuery } from "@/hooks/use-media-query";
+
+export default function HorizontalMenu() {
+
+ const [config] = useConfig()
+
+ const t = useTranslations("Menu");
+ const pathname = usePathname();
+
+ const menuList = getHorizontalMenuList(pathname, t)
+
+ const [openDropdown, setOpenDropdown] = React.useState({detail?.username})
+{label}
+ ++ {label} +
+ ) +} + +export default MenuLabel \ No newline at end of file diff --git a/components/partials/sidebar/common/menu-widget.tsx b/components/partials/sidebar/common/menu-widget.tsx new file mode 100644 index 0000000..216ee16 --- /dev/null +++ b/components/partials/sidebar/common/menu-widget.tsx @@ -0,0 +1,31 @@ +'use client' +import { Button } from '@/components/ui/button' +import { useConfig } from '@/hooks/use-config' +import Image from 'next/image' +import React from 'react' + +const MenuWidget = () => { + const [config] = useConfig(); + if (config.sidebar === 'compact') return null + return ( +
+
+ + {date} +
+