2020-10-30 22:15:08 -07:00
< template >
2020-12-21 22:25:46 -07:00
< div >
< div
v - if = "!showAlt"
: id = "adId"
class = "ethical-ad"
data - ea - publisher = "modrinth-com"
: data - ea - type = "type"
data - ea - manual = "true"
/ >
< div v-else class = "alt" >
< p >
A privacy - focused ad used to fund this site would ' ve been here . Please
disable your content blocker to support Modrinth and it ' s authors .
< / p >
< / div >
< / div >
2020-10-30 22:15:08 -07:00
< / template >
< script >
export default {
name : 'EthicalAd' ,
2020-12-21 22:25:46 -07:00
props : {
type : {
type : String ,
default : 'text' ,
} ,
adId : {
type : String ,
default : 'none' ,
} ,
} ,
data ( ) {
return {
showAlt : false ,
}
} ,
mounted ( ) {
try {
// eslint-disable-next-line no-undef
if ( typeof ethicalads === 'undefined' ) {
this . $notify ( {
group : 'ads' ,
title : 'Please disable your Content Blocker' ,
text :
'Modrinth uses privacy-focused ads, from EthicalAds. Ads are the only way that our site is able to pay modders and support itself. Our ads are non-intrusive and minimal, and we only have one per page. We can assure you that none of your data is sold or used for tracking purposes.' ,
type : 'error' ,
} )
this . showAlt = true
} else {
const element = document . getElementsByClassName ( 'ethical-ad' ) [ 0 ]
element . className = 'ethical-ad'
element . innerHTML = ''
// eslint-disable-next-line no-undef
ethicalads . load ( )
element . className = 'ethical-ad loaded ' + this . $colorMode . preference
}
} catch ( err ) {
// eslint-disable-next-line no-console
console . error ( err )
}
} ,
2020-10-30 22:15:08 -07:00
}
< / script >
2020-12-21 22:25:46 -07:00
< style lang = "scss" scoped >
[ data - ea - type = 'text' ] {
min - height : 70 px ;
}
[ data - ea - type = 'image' ] {
margin : auto 10 px ;
min - height : 260 px ;
}
. alt {
font - size : 14 px ;
border - radius : var ( -- size - rounded - sm ) ;
background - color : var ( -- color - raised - bg ) ;
box - shadow : 0 2 px 3 px rgba ( 0 , 0 , 0 , 0.15 ) ;
padding : 0.7 em 1 em ;
margin : 1 em 0 2 em 0 ;
}
< / style >