95 lines
2.0 KiB
JavaScript
95 lines
2.0 KiB
JavaScript
import {
|
|
watchOptionsWithPrefix,
|
|
getOptionFor,
|
|
getPrefixFor,
|
|
applyPrefixFor,
|
|
} from './helpers'
|
|
import { handleBackgroundOptionFor } from './variables/background'
|
|
|
|
const getPrefix = () => {
|
|
if (document.body.classList.contains('single')) {
|
|
return 'post'
|
|
}
|
|
|
|
if (
|
|
document.body.classList.contains('page') ||
|
|
document.body.classList.contains('blog') ||
|
|
document.body.classList.contains('post-type-archive-product')
|
|
) {
|
|
return 'page'
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
export const renderComments = ({ prefix }) => {
|
|
let container = document.querySelector('.ct-comments-container > div')
|
|
|
|
if (!container) {
|
|
return
|
|
}
|
|
|
|
container.classList.remove('ct-container', 'ct-container-narrow')
|
|
container.classList.add(
|
|
getOptionFor('comments_structure', prefix) === 'narrow'
|
|
? 'ct-container-narrow'
|
|
: 'ct-container'
|
|
)
|
|
|
|
if (window.DISQUS) {
|
|
window.DISQUS.host._loadEmbed()
|
|
}
|
|
}
|
|
|
|
watchOptionsWithPrefix({
|
|
getPrefix,
|
|
|
|
getOptionsForPrefix: ({ prefix }) => [`${prefix}_comments_structure`],
|
|
|
|
render: renderComments,
|
|
})
|
|
|
|
export const getCommentsVariables = () => {
|
|
const prefix = getPrefixFor()
|
|
return {
|
|
[`${prefix}_comments_narrow_width`]: {
|
|
variable: 'theme-narrow-container-max-width',
|
|
selector: applyPrefixFor('.ct-comments-container', prefix),
|
|
unit: 'px',
|
|
},
|
|
|
|
[`${prefix}_comments_author_name_font_color`]: [
|
|
{
|
|
selector: applyPrefixFor('.ct-comments .ct-comment-author', prefix),
|
|
variable: 'theme-heading-color',
|
|
type: 'color:default',
|
|
},
|
|
|
|
{
|
|
selector: applyPrefixFor('.ct-comments .ct-comment-author', prefix),
|
|
variable: 'theme-link-hover-color',
|
|
type: 'color:hover',
|
|
},
|
|
],
|
|
|
|
[`${prefix}_comments_font_color`]: [
|
|
{
|
|
selector: applyPrefixFor('.ct-comments', prefix),
|
|
variable: 'theme-text-color',
|
|
type: 'color:default',
|
|
},
|
|
|
|
{
|
|
selector: applyPrefixFor('.ct-comments', prefix),
|
|
variable: 'theme-link-hover-color',
|
|
type: 'color:hover',
|
|
},
|
|
],
|
|
|
|
...handleBackgroundOptionFor({
|
|
id: `${prefix}_comments_background`,
|
|
selector: applyPrefixFor('.ct-comments-container', prefix),
|
|
}),
|
|
}
|
|
}
|