1 ? '-ml-4 sm:-ml-6' : ''
+ 'embla__container -ml-4 items-center sm:-ml-10',
+ medias.length === 1 && ' justify-center'
)}
>
{medias?.map((media, index) => (
1 ? 'flex-[0_0_80%] pl-4 sm:pl-6' : 'flex-1',
+ 'embla__slide flex-[0_0_60%] pl-4 sm:pl-10',
index === currSlider ? 'h-[80vh]' : 'h-[40vh]'
)}
key={index}
diff --git a/client/src/components/ui/dialog.tsx b/client/src/components/ui/dialog.tsx
index 5294cbf..d2e61ec 100644
--- a/client/src/components/ui/dialog.tsx
+++ b/client/src/components/ui/dialog.tsx
@@ -23,7 +23,7 @@ const DialogOverlay = React.forwardRef<
{children}
-
-
+
+
Close
diff --git a/client/src/components/ui/rich-text.tsx b/client/src/components/ui/rich-text.tsx
index 6fff444..0946fce 100644
--- a/client/src/components/ui/rich-text.tsx
+++ b/client/src/components/ui/rich-text.tsx
@@ -28,6 +28,11 @@ const RichText = ({ children, className }: RichTextProps) => {
{props.children}
),
+ li: ({ node, ...props }) => (
+
+ {props.children}
+
+ ),
img: ({ node, ...props }) => (
{
),
video: ({ node, ...props }) => {
return (
-
-
{!!storiesLength && `${storiesLength} stories`}
+
+ {`${storiesLength} featured ${storiesLength === 1 ? 'story' : 'stories'}`}
+
diff --git a/client/src/containers/map/markers/globe-markers/index.tsx b/client/src/containers/map/markers/globe-markers/index.tsx
index 6584bc3..0d226ca 100644
--- a/client/src/containers/map/markers/globe-markers/index.tsx
+++ b/client/src/containers/map/markers/globe-markers/index.tsx
@@ -1,6 +1,6 @@
'use client';
-import { useMemo } from 'react';
+import { useEffect, useMemo, useState } from 'react';
import { Layer, Source } from 'react-map-gl';
@@ -41,7 +41,12 @@ const GlobeMarkers = () => {
useMapImage({
name: 'story-marker',
- url: `${process.env.NEXT_PUBLIC_BASE_PATH}/images/map/story-marker.png`,
+ url: `${process.env.NEXT_PUBLIC_BASE_PATH}/images/map/story-marker-sm.png`,
+ });
+
+ useMapImage({
+ name: 'story-marker-lg',
+ url: `${process.env.NEXT_PUBLIC_BASE_PATH}/images/map/story-marker-lg.png`,
});
const pathname = usePathname();
@@ -50,7 +55,35 @@ const GlobeMarkers = () => {
[pathname]
);
- return (
+ const [size, setSize] = useState(1);
+
+ const [opacity, setOpacity] = useState(1);
+
+ // Animate the size and opacity of the markers
+ useEffect(() => {
+ if (typeof window === 'undefined') return;
+ const startTime = performance.now();
+ const velocity = 3000;
+ const minSize = 0.75;
+
+ const animate = () => {
+ const progress = ((performance.now() - startTime) % velocity) / velocity;
+ const x = Math.abs(Math.sin(progress * Math.PI));
+ // Set the opacity interpolating from 0 to 1 and back
+ setOpacity(x);
+ const size = x * (1 - minSize) + minSize;
+ // Set the size interpolating from 0.75 to 1 and back
+ setSize(size);
+ requestAnimationFrame(animate);
+ };
+
+ // https://developer.mozilla.org/en-US/docs/Web/API/Window/requestAnimationFrame
+ const frame = requestAnimationFrame(animate);
+
+ return () => cancelAnimationFrame(frame);
+ }, []);
+
+ return pathname.includes('stories') ? null : (