Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

When I am adding appID, button are not showing in popup. #444

Open
artisharma24 opened this issue Jun 11, 2024 · 0 comments
Open

When I am adding appID, button are not showing in popup. #444

artisharma24 opened this issue Jun 11, 2024 · 0 comments

Comments

@artisharma24
Copy link

Here is my code .

const notifier = require('node-notifier');
const path = require('path');
const { shell, ipcMain } = require('electron');
const socket = require('socket.io-client')('http://192.168.50.25:5050/');
const { insertRecordsIntoNotification, createNotificationTable } = require('../repos/notificationRepo.js');

async function showNotification(message, isResponse) {
try {
console.log("showNotification triggered");

    if (!message) {
        throw new Error('No message provided.');
    }

    const messageJson = JSON.parse(message);
    const iconPath = path.resolve(__dirname, '../assets/images/logo.png');
    const contentImage = path.resolve(__dirname, '../assets/images/background-image.png')
    if (!messageJson.Title || !messageJson.Message || !messageJson.Records || !Array.isArray(messageJson.Records)) {
        throw new Error('Invalid message format.');
    }
    console.log(messageJson.Message);
    if (!isResponse) {
        createNotificationTable();
        await insertRecordsIntoNotification(messageJson.Message);
    }
    const buttons = messageJson.Records.map(record => record.label);

    notifier.notify({
        title: messageJson.Title,
        message: messageJson.Message,
        icon: iconPath,
        contentImage: contentImage,
        wait: true,
        actions: buttons,
        appID:"Smart Agent"
    });

    messageJson.Records.forEach(element => {
        const label = element.label.toLowerCase();
        switch (element.type.toLowerCase()) {
            case 'button': {
                if (messageJson.NotificationType === 'RemoteShare') {
                    notifier.on(label, () => {
                        try {
                            console.log(`${label}ed the remote desktop sharing request and Emitting ${label} response... ${element.action}`);
                            const obj = { response: label, room: element.action, clntName: messageJson.clntName };
                            ipcMain.emit('start-share', obj);
                        } catch (error) {
                            console.error('Error:', error.message);
                        }

                    });
                } else if(messageJson.NotificationType === 'RemoteShareResponse'){
                    console.log(`disconnected the remote desktop sharing request`);                               
                } 
                else{
                    notifier.on(label, () => {                            
                        shell.openExternal(element.action);
                    });
                }
                break;
            }
            case 'link':
                {
                    shell.openExternal(element.action);
                    break;
                }
            default:
                break;
        }
    });
} catch (error) {
    console.error('Error:', error.message);
}

}

module.exports = { showNotification };

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant