mirror of
https://github.com/ecency/ecency-mobile.git
synced 2024-11-28 01:52:56 +03:00
created post url handle
This commit is contained in:
parent
33ddbf388e
commit
4288c2c971
@ -23,10 +23,14 @@ class PostBody extends Component {
|
|||||||
// Component Functions
|
// Component Functions
|
||||||
|
|
||||||
_handleOnLinkPress = (evt, href, hrefatr) => {
|
_handleOnLinkPress = (evt, href, hrefatr) => {
|
||||||
const { handleOnUserPress } = this.props;
|
const { handleOnUserPress, handleOnPostPress } = this.props;
|
||||||
|
|
||||||
if (hrefatr.class === 'markdown-author-link') {
|
if (hrefatr.class === 'markdown-author-link') {
|
||||||
!handleOnUserPress ? this._handleOnUserPress(href) : handleOnUserPress(href);
|
!handleOnUserPress ? this._handleOnUserPress(href) : handleOnUserPress(href);
|
||||||
|
} else if (hrefatr.class === 'markdown-post-link') {
|
||||||
|
!handleOnPostPress
|
||||||
|
? this._handleOnPostPress(href, hrefatr.data_author)
|
||||||
|
: handleOnPostPress(href);
|
||||||
} else {
|
} else {
|
||||||
Linking.canOpenURL(href).then((supported) => {
|
Linking.canOpenURL(href).then((supported) => {
|
||||||
if (supported) {
|
if (supported) {
|
||||||
@ -38,6 +42,19 @@ class PostBody extends Component {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
_handleOnPostPress = (permlink, author) => {
|
||||||
|
const { navigation } = this.props;
|
||||||
|
|
||||||
|
navigation.navigate({
|
||||||
|
routeName: ROUTES.SCREENS.POST,
|
||||||
|
params: {
|
||||||
|
author,
|
||||||
|
permlink,
|
||||||
|
},
|
||||||
|
key: permlink,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
_handleOnUserPress = (username) => {
|
_handleOnUserPress = (username) => {
|
||||||
const { navigation } = this.props;
|
const { navigation } = this.props;
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ const dTubeRegex = /(https?:\/\/d.tube.#!\/v\/)(\w+)\/(\w+)/g;
|
|||||||
const authorNameRegex = /(^|[^a-zA-Z0-9_!#$%&*@@\/]|(^|[^a-zA-Z0-9_+~.-\/]))[@@]([a-z][-\.a-z\d]+[a-z\d])/gi;
|
const authorNameRegex = /(^|[^a-zA-Z0-9_!#$%&*@@\/]|(^|[^a-zA-Z0-9_+~.-\/]))[@@]([a-z][-\.a-z\d]+[a-z\d])/gi;
|
||||||
const tagsRegex = /(^|\s|>)(#[-a-z\d]+)/gi;
|
const tagsRegex = /(^|\s|>)(#[-a-z\d]+)/gi;
|
||||||
const centerRegex = /(<center>)/g;
|
const centerRegex = /(<center>)/g;
|
||||||
|
const steemitRegex = /^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[steemit]+[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/gm;
|
||||||
|
|
||||||
export const markDown2Html = (input) => {
|
export const markDown2Html = (input) => {
|
||||||
if (!input) {
|
if (!input) {
|
||||||
@ -60,6 +61,10 @@ export const markDown2Html = (input) => {
|
|||||||
output = centerStyling(output);
|
output = centerStyling(output);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (postRegex.test(output)) {
|
||||||
|
output = steemitUrlHandle(output);
|
||||||
|
}
|
||||||
|
|
||||||
output = md.render(output);
|
output = md.render(output);
|
||||||
|
|
||||||
return output;
|
return output;
|
||||||
@ -92,6 +97,15 @@ const createCenterImage = input => input.replace(imgCenterRegex, (link) => {
|
|||||||
return `><img data-href="${_link}" src="${_link}"><`;
|
return `><img data-href="${_link}" src="${_link}"><`;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const steemitUrlHandle = input => input.replace(postRegex, (link) => {
|
||||||
|
const postMatch = link.match(postRegex);
|
||||||
|
const tag = postMatch[2];
|
||||||
|
const author = postMatch[3].replace('@', '');
|
||||||
|
const permlink = postMatch[4];
|
||||||
|
|
||||||
|
return `<a class="markdown-post-link" href="${permlink}" data_tag={${tag}} data_author="${author}">/${permlink}</a>`;
|
||||||
|
});
|
||||||
|
|
||||||
const createImage = input => input.replace(onlyImageLinkRegex, link => `<img data-href="${link}" src="${link}">`);
|
const createImage = input => input.replace(onlyImageLinkRegex, link => `<img data-href="${link}" src="${link}">`);
|
||||||
|
|
||||||
const createFromDoubleImageLink = input => input.replace(onlyImageDoubleLinkRegex, (link) => {
|
const createFromDoubleImageLink = input => input.replace(onlyImageDoubleLinkRegex, (link) => {
|
||||||
|
Loading…
Reference in New Issue
Block a user