SILENT KILLERPanel

Current Path: > home > codekrsu > > shopceylon.store > wp-content > plugins > code-snippets > js > > services > manage


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: /home/codekrsu//shopceylon.store/wp-content/plugins/code-snippets/js//services/manage

NameTypeSizeLast ModifiedActions
activation.ts File 2364 bytes February 14 2025 13:16:14.
cloud.ts File 1538 bytes November 27 2024 21:52:46.
index.ts File 170 bytes November 27 2024 21:52:46.
priority.ts File 740 bytes November 27 2024 21:52:46.
requests.ts File 1765 bytes November 27 2024 21:52:46.

Reading File: /home/codekrsu//shopceylon.store/wp-content/plugins/code-snippets/js//services/manage/activation.ts

import { __ } from '@wordpress/i18n'
import { updateSnippet } from './requests'
import type { Snippet } from '../../types/Snippet'

/**
 * Update the snippet count of a specific view
 * @param element
 * @param increment
 */
const updateViewCount = (element: HTMLElement | null, increment: boolean) => {
	if (element?.textContent) {
		let count = parseInt(element.textContent.replace(/\((?<count>\d+)\)/, '$1'), 10)
		count += increment ? 1 : -1
		element.textContent = `(${count})`
	} else {
		console.error('Could not update view count.', element)
	}
}

/**
 * Activate an inactive snippet, or deactivate an active snippet
 * @param link
 * @param event
 */
export const toggleSnippetActive = (link: HTMLAnchorElement, event: Event) => {
	const row = link.parentElement?.parentElement // Switch < cell < row
	if (!row) {
		console.error('Could not toggle snippet active status.', row)
		return
	}

	const match = /\b(?:in)?active-snippet\b/.exec(row.className)
	if (!match) {
		return
	}

	event.preventDefault()

	const activating = 'inactive-snippet' === match[0]
	const snippet: Partial<Snippet> = { active: activating }

	updateSnippet('active', row, snippet, response => {
		const button: HTMLAnchorElement | null = row.querySelector('.snippet-activation-switch')

		if (response.success) {
			row.className = activating
				? row.className.replace(/\binactive-snippet\b/, 'active-snippet')
				: row.className.replace(/\bactive-snippet\b/, 'inactive-snippet')

			const views = document.querySelector('.subsubsub')
			const activeCount = views?.querySelector<HTMLElement>('.active .count')
			const inactiveCount = views?.querySelector<HTMLElement>('.inactive .count')

			if (activeCount) {
				updateViewCount(activeCount, activating)
			}

			if (inactiveCount) {
				updateViewCount(inactiveCount, activating)
			}

			if (button) {
				button.title = activating ? __('Deactivate', 'code-snippets') : __('Activate', 'code-snippets')
			}
		} else {
			row.className += ' erroneous-snippet'

			if (button) {
				button.title = __('An error occurred when attempting to activate', 'code-snippets')
			}
		}
	})
}

export const handleSnippetActivationSwitches = () => {
	for (const link of document.getElementsByClassName('snippet-activation-switch')) {
		link.addEventListener('click', event => toggleSnippetActive(<HTMLAnchorElement> link, event))
	}
}

SILENT KILLER Tool