fixing
This commit is contained in:
parent
2f7461be46
commit
5c340a05a2
|
|
@ -73,21 +73,21 @@ const columns: ColumnDef<any>[] = [
|
|||
</Button>
|
||||
</DropdownMenuTrigger>
|
||||
<DropdownMenuContent className="p-0" align="end">
|
||||
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none">
|
||||
<Link
|
||||
href={`/admin/broadcast/campaign-list/detail/${row.original.id}`}
|
||||
>
|
||||
<Link
|
||||
href={`/admin/broadcast/campaign-list/detail/${row.original.id}`}
|
||||
>
|
||||
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none cursor-pointer">
|
||||
Detail
|
||||
</Link>
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none">
|
||||
<Link
|
||||
href={`//admin/broadcast/campaign-list/edit/${row.original.id}`}
|
||||
>
|
||||
</DropdownMenuItem>
|
||||
</Link>
|
||||
<Link
|
||||
href={`//admin/broadcast/campaign-list/edit/${row.original.id}`}
|
||||
>
|
||||
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none cursor-pointer">
|
||||
Edit
|
||||
</Link>
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none">
|
||||
</DropdownMenuItem>
|
||||
</Link>
|
||||
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none cursor-pointer">
|
||||
<a>Delete</a>
|
||||
</DropdownMenuItem>
|
||||
</DropdownMenuContent>
|
||||
|
|
|
|||
|
|
@ -85,23 +85,21 @@ const columns: ColumnDef<any>[] = [
|
|||
</Button>
|
||||
</DropdownMenuTrigger>
|
||||
<DropdownMenuContent className="p-0" align="end">
|
||||
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none">
|
||||
<Link
|
||||
href={`/contributor/content/image/detail/${row.original.id}`}
|
||||
>
|
||||
<Link href={`/contributor/content/image/detail/${row.original.id}`}>
|
||||
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none cursor-pointer">
|
||||
Detail
|
||||
</Link>
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none">
|
||||
<Link href={`/admin/broadcast/email/${row.original.id}`}>
|
||||
</DropdownMenuItem>
|
||||
</Link>
|
||||
<Link href={`/admin/broadcast/email/${row.original.id}`}>
|
||||
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none cursor-pointer">
|
||||
Email Blast
|
||||
</Link>
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none">
|
||||
<Link href={`/admin/broadcast/whatsapp/${row.original.id}`}>
|
||||
</DropdownMenuItem>
|
||||
</Link>
|
||||
<Link href={`/admin/broadcast/whatsapp/${row.original.id}`}>
|
||||
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none cursor-pointer">
|
||||
Whatsapp Blast
|
||||
</Link>
|
||||
</DropdownMenuItem>
|
||||
</DropdownMenuItem>
|
||||
</Link>
|
||||
</DropdownMenuContent>
|
||||
</DropdownMenu>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -80,23 +80,21 @@ const columns: ColumnDef<any>[] = [
|
|||
</Button>
|
||||
</DropdownMenuTrigger>
|
||||
<DropdownMenuContent className="p-0" align="end">
|
||||
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none">
|
||||
<Link
|
||||
href={`/contributor/content/image/detail/${row.original.id}`}
|
||||
>
|
||||
<Link href={`/contributor/content/image/detail/${row.original.id}`}>
|
||||
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none cursor-pointer">
|
||||
Detail
|
||||
</Link>
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none">
|
||||
<Link href={`/admin/broadcast/email/${row.original.id}`}>
|
||||
</DropdownMenuItem>
|
||||
</Link>
|
||||
<Link href={`/admin/broadcast/email/${row.original.id}`}>
|
||||
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none cursor-pointer">
|
||||
Email Blast
|
||||
</Link>
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none">
|
||||
<Link href={`/admin/broadcast/whatsapp/${row.original.id}`}>
|
||||
</DropdownMenuItem>
|
||||
</Link>
|
||||
<Link href={`/admin/broadcast/whatsapp/${row.original.id}`}>
|
||||
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none cursor-pointer">
|
||||
Whatsapp Blast
|
||||
</Link>
|
||||
</DropdownMenuItem>
|
||||
</DropdownMenuItem>
|
||||
</Link>
|
||||
</DropdownMenuContent>
|
||||
</DropdownMenu>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ import "swiper/css/pagination";
|
|||
import { ChevronLeft, ChevronRight } from "lucide-react";
|
||||
import { Link } from "@/i18n/routing";
|
||||
import { listBannerHero } from "@/service/settings/settings";
|
||||
import ImageBlurry from "../ui/image-blurry";
|
||||
|
||||
type HeroModalProps = {
|
||||
onClose: () => void;
|
||||
|
|
@ -163,7 +164,7 @@ const HeroModal = ({
|
|||
autoplay={{ delay: 3000 }}
|
||||
className="mySwiper w-full"
|
||||
>
|
||||
{dataContent.map((list: any) => (
|
||||
{dataContent?.map((list: any) => (
|
||||
<SwiperSlide key={list?.id}>
|
||||
<div className="relative h-[310px] lg:h-[420px]">
|
||||
<button
|
||||
|
|
@ -542,12 +543,15 @@ const HeroNew = (props: { group?: string }) => {
|
|||
<SwiperSlide key={list?.id}>
|
||||
<div className="relative h-[310px] lg:h-[700px]">
|
||||
{/* Gambar */}
|
||||
<Image
|
||||
<ImageBlurry
|
||||
priority
|
||||
src={list?.smallThumbnailLink}
|
||||
alt="gambar"
|
||||
fill
|
||||
className="object-cover w-full h-full"
|
||||
style={{
|
||||
objectFit: "contain",
|
||||
width: "100%",
|
||||
height: "100%",
|
||||
}}
|
||||
/>
|
||||
|
||||
{/* Overlay */}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import React, { useEffect, useState } from 'react';
|
||||
import React, { useEffect, useState } from "react";
|
||||
|
||||
interface ImageBlurryProps {
|
||||
src: string;
|
||||
|
|
@ -6,10 +6,11 @@ interface ImageBlurryProps {
|
|||
classname?: string;
|
||||
key?: string | number;
|
||||
style?: React.CSSProperties;
|
||||
priority?: boolean;
|
||||
}
|
||||
|
||||
const ImageBlurry: React.FC<ImageBlurryProps> = (props) => {
|
||||
const { src, alt, classname, key, style } = props;
|
||||
const { src, alt, classname, key, style, priority = false } = props;
|
||||
|
||||
const [imgSrc, setImgSrc] = useState<string>(src);
|
||||
const [isError, setIsError] = useState<boolean>(false);
|
||||
|
|
@ -19,12 +20,12 @@ const ImageBlurry: React.FC<ImageBlurryProps> = (props) => {
|
|||
}, [src]);
|
||||
|
||||
const handleImage = () => {
|
||||
const pics = document.querySelectorAll<HTMLImageElement>('img');
|
||||
const pics = document.querySelectorAll<HTMLImageElement>("img");
|
||||
pics.forEach((pic) => {
|
||||
if (pic.complete) {
|
||||
checkImage(pic);
|
||||
} else {
|
||||
pic.addEventListener('load', function () {
|
||||
pic.addEventListener("load", function () {
|
||||
checkImage(this);
|
||||
});
|
||||
}
|
||||
|
|
@ -33,16 +34,16 @@ const ImageBlurry: React.FC<ImageBlurryProps> = (props) => {
|
|||
|
||||
const checkImage = (img: HTMLImageElement) => {
|
||||
if (img.naturalHeight > img.naturalWidth) {
|
||||
img.classList.add('portrait');
|
||||
img.classList.add("portrait");
|
||||
} else if (Math.abs(img.naturalHeight - img.naturalWidth) < 10) {
|
||||
img.classList.add('square');
|
||||
img.classList.add("square");
|
||||
} else {
|
||||
img.classList.add('landscape');
|
||||
img.classList.add("landscape");
|
||||
}
|
||||
};
|
||||
|
||||
const onLoad = () => {
|
||||
console.log('Image loaded:', src);
|
||||
console.log("Image loaded:", src);
|
||||
handleImage();
|
||||
};
|
||||
|
||||
|
|
@ -51,9 +52,19 @@ const ImageBlurry: React.FC<ImageBlurryProps> = (props) => {
|
|||
// <div className="absolute -top-6 -bottom-6 left-0 -right-6 bg-[#e9e9e9] blur-[8px] scale-[1.8] bg-center bg-no-repeat bg-contain blur-bg" style={{ backgroundImage: `url(${imgSrc})` }}></div>
|
||||
// <div className="absolute inset-0 bg-transparent bg-center bg-no-repeat bg-contain image-bg" style={{ backgroundImage: `url(${imgSrc})` }}></div>
|
||||
// </div>
|
||||
<div className="blurry-wrapper relative overflow-hidden bg-[#e9e9e9] rounded-lg" key={key} style={style}>
|
||||
<div className="absolute -top-6 -bottom-6 -left-0 -right-6 bg-[#e9e9e9] blur-[8px] scale-[1.8] bg-center bg-no-repeat bg-contain blur-bg" style={{ backgroundImage: `url(${imgSrc})` }}></div>
|
||||
<div className="absolute inset-0 bg-transparent bg-center bg-no-repeat bg-contain image-bg" style={{ backgroundImage: `url(${imgSrc})` }}></div>
|
||||
<div
|
||||
className="blurry-wrapper relative overflow-hidden bg-[#e9e9e9] rounded-lg"
|
||||
key={key}
|
||||
style={style}
|
||||
>
|
||||
<div
|
||||
className="absolute -top-6 -bottom-6 -left-0 -right-6 bg-[#e9e9e9] blur-[8px] scale-[1.8] bg-center bg-no-repeat bg-contain blur-bg"
|
||||
style={{ backgroundImage: `url(${imgSrc})` }}
|
||||
></div>
|
||||
<div
|
||||
className="absolute inset-0 bg-transparent bg-center bg-no-repeat bg-contain image-bg"
|
||||
style={{ backgroundImage: `url(${imgSrc})` }}
|
||||
></div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue