alter createCanonicalLink to take an object parameter
This commit is contained in:
parent
46675107cd
commit
bfd3971bd5
3 changed files with 32 additions and 23 deletions
|
@ -6,19 +6,23 @@ import Row from '@components/Row';
|
||||||
import SpaceBetween from '@components/SpaceBetween';
|
import SpaceBetween from '@components/SpaceBetween';
|
||||||
import AssetShareButtons from '@components/AssetShareButtons';
|
import AssetShareButtons from '@components/AssetShareButtons';
|
||||||
import ClickToCopy from '@components/ClickToCopy';
|
import ClickToCopy from '@components/ClickToCopy';
|
||||||
|
import createCanonicalLink from '../../utils/createCanonicalLink';
|
||||||
|
|
||||||
class AssetInfo extends React.Component {
|
class AssetInfo extends React.Component {
|
||||||
render () {
|
render () {
|
||||||
const {
|
const { asset } = this.props;
|
||||||
asset: {
|
const { shortId, claimData: { channelName, channelShortId, certificateId, description, name, claimId, fileExt, contentType, thumbnail, host } } = asset;
|
||||||
shortId,
|
|
||||||
claimData : {
|
|
||||||
channelName, certificateId, description, name, claimId, fileExt, contentType, thumbnail, host
|
|
||||||
},
|
|
||||||
claimViews,
|
|
||||||
}
|
|
||||||
} = this.props;
|
|
||||||
|
|
||||||
|
const assetCanonicalUrl = createCanonicalLink({asset});
|
||||||
|
|
||||||
|
let channelCanonicalUrl;
|
||||||
|
if (channelName) {
|
||||||
|
const channel = {
|
||||||
|
name: channelName,
|
||||||
|
shortId: channelShortId,
|
||||||
|
};
|
||||||
|
channelCanonicalUrl = createCanonicalLink({channel});
|
||||||
|
}
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
{channelName && (
|
{channelName && (
|
||||||
|
@ -29,7 +33,7 @@ class AssetInfo extends React.Component {
|
||||||
}
|
}
|
||||||
content={
|
content={
|
||||||
<span className='text'>
|
<span className='text'>
|
||||||
<Link to={`/${channelName}:${certificateId}`}>{channelName}</Link>
|
<Link to={channelCanonicalUrl}>{channelName}</Link>
|
||||||
</span>
|
</span>
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -21,7 +21,12 @@ class SEO extends React.Component {
|
||||||
asset,
|
asset,
|
||||||
channel,
|
channel,
|
||||||
});
|
});
|
||||||
const canonicalLink = createCanonicalLink(asset, channel, pageUri);
|
const canonicalLink = createCanonicalLink({
|
||||||
|
asset,
|
||||||
|
channel,
|
||||||
|
page: pageUri,
|
||||||
|
absolute: true,
|
||||||
|
});
|
||||||
// render results
|
// render results
|
||||||
return (
|
return (
|
||||||
<Helmet
|
<Helmet
|
||||||
|
|
|
@ -6,34 +6,34 @@ const {
|
||||||
},
|
},
|
||||||
} = siteConfig;
|
} = siteConfig;
|
||||||
|
|
||||||
const createBasicCanonicalLink = (page) => {
|
const createBasicCanonicalLink = (absolute, page) => {
|
||||||
return `${host}/${page}`;
|
return `${absolute ? host : ''}/${page}`;
|
||||||
};
|
};
|
||||||
|
|
||||||
const createAssetCanonicalLink = (asset) => {
|
const createAssetCanonicalLink = (absolute, asset) => {
|
||||||
let channelName, channelShortId, name, claimId;
|
let channelName, channelShortId, name, claimId;
|
||||||
if (asset.claimData) {
|
if (asset.claimData) {
|
||||||
({ channelName, channelShortId, name, claimId } = asset.claimData);
|
({ channelName, channelShortId, name, claimId } = asset.claimData);
|
||||||
}
|
}
|
||||||
if (channelName) {
|
if (channelName) {
|
||||||
return `${host}/${channelName}:${channelShortId}/${name}`;
|
return `${absolute ? host : ''}/${channelName}:${channelShortId}/${name}`;
|
||||||
}
|
}
|
||||||
return `${host}/${claimId}/${name}`;
|
return `${absolute ? host : ''}/${claimId}/${name}`;
|
||||||
};
|
};
|
||||||
|
|
||||||
const createChannelCanonicalLink = (channel) => {
|
const createChannelCanonicalLink = (absolute, channel) => {
|
||||||
const { name, longId } = channel;
|
const { name, longId, shortId } = channel;
|
||||||
return `${host}/${name}:${longId}`;
|
return `${absolute ? host : ''}/${name}:${shortId ? shortId : longId}`;
|
||||||
};
|
};
|
||||||
|
|
||||||
const createCanonicalLink = (asset, channel, page) => {
|
const createCanonicalLink = ({asset, channel, page, absolute = false}) => {
|
||||||
if (asset) {
|
if (asset) {
|
||||||
return createAssetCanonicalLink(asset);
|
return createAssetCanonicalLink(absolute, asset);
|
||||||
}
|
}
|
||||||
if (channel) {
|
if (channel) {
|
||||||
return createChannelCanonicalLink(channel);
|
return createChannelCanonicalLink(absolute, channel);
|
||||||
}
|
}
|
||||||
return createBasicCanonicalLink(page);
|
return createBasicCanonicalLink(absolute, page);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default createCanonicalLink;
|
export default createCanonicalLink;
|
||||||
|
|
Loading…
Add table
Reference in a new issue