feat: use brand logos in sharing options
This commit is contained in:
10
package-lock.json
generated
10
package-lock.json
generated
@@ -12,6 +12,7 @@
|
|||||||
"next": "^16.3.4",
|
"next": "^16.3.4",
|
||||||
"react": "^19.0.0",
|
"react": "^19.0.0",
|
||||||
"react-dom": "^19.0.0",
|
"react-dom": "^19.0.0",
|
||||||
|
"react-icons": "^5.7.0",
|
||||||
"sharp": "0.35.4",
|
"sharp": "0.35.4",
|
||||||
"three": "^0.180.0"
|
"three": "^0.180.0"
|
||||||
},
|
},
|
||||||
@@ -5256,6 +5257,15 @@
|
|||||||
"react": "^19.2.8"
|
"react": "^19.2.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/react-icons": {
|
||||||
|
"version": "5.7.0",
|
||||||
|
"resolved": "https://package-mirror.liara.ir/artifactory/api/npm/npm/react-icons/-/react-icons-5.7.0.tgz",
|
||||||
|
"integrity": "sha512-LBLy340Rzqy6+/yVhZKT3B/QpP1BZaesGqasf09HPOBzRarcDIFH0WwXlXQfE7q7ipxK4MSiC5DIBWURCny6fw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/react-is": {
|
"node_modules/react-is": {
|
||||||
"version": "16.13.1",
|
"version": "16.13.1",
|
||||||
"resolved": "https://package-mirror.liara.ir/artifactory/api/npm/npm/react-is/-/react-is-16.13.1.tgz",
|
"resolved": "https://package-mirror.liara.ir/artifactory/api/npm/npm/react-is/-/react-is-16.13.1.tgz",
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
"next": "^16.3.4",
|
"next": "^16.3.4",
|
||||||
"react": "^19.0.0",
|
"react": "^19.0.0",
|
||||||
"react-dom": "^19.0.0",
|
"react-dom": "^19.0.0",
|
||||||
|
"react-icons": "^5.7.0",
|
||||||
"sharp": "0.35.4",
|
"sharp": "0.35.4",
|
||||||
"three": "^0.180.0"
|
"three": "^0.180.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -653,6 +653,18 @@
|
|||||||
height: var(--size-icon-md);
|
height: var(--size-icon-md);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.shareOptions a[data-share-service='telegram'] svg {
|
||||||
|
color: #26a5e4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shareOptions a[data-share-service='whatsapp'] svg {
|
||||||
|
color: #25d366;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shareOptions a[data-share-service='linkedin'] svg {
|
||||||
|
color: #0a66c2;
|
||||||
|
}
|
||||||
|
|
||||||
.copyLinkButton {
|
.copyLinkButton {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|||||||
@@ -1,15 +1,13 @@
|
|||||||
'use client';
|
'use client';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
BriefcaseBusiness,
|
|
||||||
Check,
|
Check,
|
||||||
Copy,
|
Copy,
|
||||||
Mail,
|
Mail,
|
||||||
MessageCircle,
|
|
||||||
Send,
|
|
||||||
Share2,
|
Share2,
|
||||||
X,
|
X,
|
||||||
} from 'lucide-react';
|
} from 'lucide-react';
|
||||||
|
import { FaLinkedinIn, FaTelegram, FaWhatsapp } from 'react-icons/fa6';
|
||||||
import {
|
import {
|
||||||
useCallback,
|
useCallback,
|
||||||
useEffect,
|
useEffect,
|
||||||
@@ -145,14 +143,14 @@ export function CaseStudyShare({ locale }: { locale: Locale }) {
|
|||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div className={styles.shareOptions}>
|
<div className={styles.shareOptions}>
|
||||||
<a href={`https://t.me/share/url?url=${encodedUrl}&text=${encodedTitle}`} target="_blank" rel="noopener noreferrer">
|
<a data-share-service="telegram" href={`https://t.me/share/url?url=${encodedUrl}&text=${encodedTitle}`} target="_blank" rel="noopener noreferrer">
|
||||||
<Send aria-hidden="true" /><span>{copy.shareTelegram}</span>
|
<FaTelegram aria-hidden="true" /><span>{copy.shareTelegram}</span>
|
||||||
</a>
|
</a>
|
||||||
<a href={`https://wa.me/?text=${encodedMessage}`} target="_blank" rel="noopener noreferrer">
|
<a data-share-service="whatsapp" href={`https://wa.me/?text=${encodedMessage}`} target="_blank" rel="noopener noreferrer">
|
||||||
<MessageCircle aria-hidden="true" /><span>{copy.shareWhatsApp}</span>
|
<FaWhatsapp aria-hidden="true" /><span>{copy.shareWhatsApp}</span>
|
||||||
</a>
|
</a>
|
||||||
<a href={`https://www.linkedin.com/sharing/share-offsite/?url=${encodedUrl}`} target="_blank" rel="noopener noreferrer">
|
<a data-share-service="linkedin" href={`https://www.linkedin.com/sharing/share-offsite/?url=${encodedUrl}`} target="_blank" rel="noopener noreferrer">
|
||||||
<BriefcaseBusiness aria-hidden="true" /><span>{copy.shareLinkedIn}</span>
|
<FaLinkedinIn aria-hidden="true" /><span>{copy.shareLinkedIn}</span>
|
||||||
</a>
|
</a>
|
||||||
<a href={`mailto:?subject=${encodedTitle}&body=${encodedMessage}`}>
|
<a href={`mailto:?subject=${encodedTitle}&body=${encodedMessage}`}>
|
||||||
<Mail aria-hidden="true" /><span>{copy.shareEmail}</span>
|
<Mail aria-hidden="true" /><span>{copy.shareEmail}</span>
|
||||||
|
|||||||
@@ -96,4 +96,8 @@ test('the full-screen gallery and share fallback expose complete interaction pat
|
|||||||
assert.match(share, /wa\.me/);
|
assert.match(share, /wa\.me/);
|
||||||
assert.match(share, /linkedin\.com\/sharing\/share-offsite/);
|
assert.match(share, /linkedin\.com\/sharing\/share-offsite/);
|
||||||
assert.match(share, /mailto:/);
|
assert.match(share, /mailto:/);
|
||||||
|
assert.match(share, /react-icons\/fa6/);
|
||||||
|
assert.match(share, /FaTelegram/);
|
||||||
|
assert.match(share, /FaWhatsapp/);
|
||||||
|
assert.match(share, /FaLinkedinIn/);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user