mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-13 07:46:06 +00:00
46 lines
1.3 KiB
JavaScript
46 lines
1.3 KiB
JavaScript
export class PageParams {
|
|
constructor(pageParams) {
|
|
this.name = pageParams.name
|
|
this.externalLink = pageParams.externalLink
|
|
this.internalPage = pageParams.internalPage
|
|
}
|
|
|
|
overwrite(assignPageParams) {
|
|
const pageParams = this
|
|
if (assignPageParams.name !== undefined) {
|
|
pageParams.name = assignPageParams.name
|
|
}
|
|
if (assignPageParams.externalLink !== undefined) {
|
|
pageParams.externalLink = assignPageParams.externalLink
|
|
}
|
|
if (assignPageParams.internalPage !== undefined) {
|
|
pageParams.internalPage = { ...pageParams.internalPage, ...assignPageParams.internalPage }
|
|
}
|
|
return pageParams
|
|
}
|
|
|
|
noStringDefined(string) {
|
|
return !string || string.length === 0
|
|
}
|
|
|
|
get isInternalPage() {
|
|
return !(this.externalLink && !this.noStringDefined(this.externalLink.url))
|
|
}
|
|
|
|
get link() {
|
|
return this.isInternalPage ? this.internalPage.pageRoute : this.externalLink.url
|
|
}
|
|
|
|
redirectToPage(thisComponent) {
|
|
if (this.isInternalPage) {
|
|
thisComponent.$router.push(this.internalPage.pageRoute)
|
|
} else if (typeof window !== 'undefined') {
|
|
if (this.externalLink.target === '_blank') {
|
|
window.open(this.externalLink.url, this.externalLink.target)
|
|
} else {
|
|
window.location.href = this.externalLink.url
|
|
}
|
|
}
|
|
}
|
|
}
|