All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.resources.js.ddm_template_editor.hooks.useChannel.js Maven / Gradle / Ivy

There is a newer version: 1.0.95
Show newest version
/**
 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
 */

import {useState} from 'react';

export function useChannel() {
	const [channel] = useState(() => {
		const listeners = new Set();

		return {
			onData(callback) {
				listeners.add(callback);

				return () => {
					listeners.delete(callback);
				};
			},

			sendData(data) {
				listeners.forEach((callback) => {
					callback(data);
				});
			},
		};
	});

	return channel;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy