Allow different formats of Mastodon link

This commit is contained in:
Ariful Alam
2023-02-14 21:06:07 +06:00
parent f38bbafb2d
commit 1229633a77
3 changed files with 32 additions and 13 deletions

View File

@@ -21,6 +21,32 @@ import {
import PropTypes from 'prop-types';
import { skeleton } from '../../helpers/utils';
const isCompanyMention = (company) => {
return company.startsWith('@') && !company.includes(' ');
};
const companyLink = (company) => {
return `https://github.com/${company.substring(1)}`;
};
const getMastodonValue = (mastodonURL) => {
const regex = /(https?:\/\/)?(www\.)?([^\s/]+)\/@(\w+)/;
const match = mastodonURL.match(regex);
if (match) {
const domain = match[3];
const username = match[4];
return `${domain}/@${username}`;
}
return mastodonURL;
};
const getMastodonLink = (mastodonURL) => {
return mastodonURL.replace(/^(https?:\/\/)?(www\.)?/, 'https://');
};
const ListItem = ({ icon, title, value, link, skeleton = false }) => {
return (
<a
@@ -48,14 +74,6 @@ const ListItem = ({ icon, title, value, link, skeleton = false }) => {
);
};
const isCompanyMention = (company) => {
return company.startsWith('@') && !company.includes(' ');
};
const companyLink = (company) => {
return `https://github.com/${company.substring(1)}`;
};
const Details = ({ profile, loading, social, github }) => {
const renderSkeleton = () => {
let array = [];
@@ -119,8 +137,8 @@ const Details = ({ profile, loading, social, github }) => {
<ListItem
icon={<FaMastodon className="mr-2" />}
title="Mastodon:"
value={social.mastodon}
link={`https://${social.mastodon}`}
value={getMastodonValue(social.mastodon)}
link={getMastodonLink(social.mastodon)}
/>
)}
{social?.linkedin && (