diff --git a/examples/inbox.js b/examples/inbox.js new file mode 100644 index 0000000..3a60508 --- /dev/null +++ b/examples/inbox.js @@ -0,0 +1,84 @@ +async function refreshInboxMessages(messages) { + const unopenedCount = await window.Gist.getInboxUnopenedCount(); + const badge = document.getElementById('inboxBadge'); + if (unopenedCount > 0) { + badge.textContent = unopenedCount; + badge.style.display = 'inline-block'; + } else { + badge.style.display = 'none'; + } + + if (!messages) { + messages = await window.Gist.getInboxMessages(); + } + + const content = document.getElementById('inboxPanelContent'); + + if (messages.length === 0) { + content.innerHTML = '
'; + return; + } + + let html = ''; + for (const message of messages) { + const props = message.properties || {}; + const queueId = message.queueId; + const propertiesJson = JSON.stringify(props, null, 2); + + html += ` + + `; + } + + content.innerHTML = html; +} + +// eslint-disable-next-line no-unused-vars +async function updateInboxMessageOpenState(queueId, opened) { + try { + await window.Gist.updateInboxMessageOpenState(queueId, opened); + } catch (error) { + console.error('Failed to mark message as opened:', error); + alert('Failed to mark message as read. Please try again.'); + } +} + +// eslint-disable-next-line no-unused-vars +async function deleteMessage(queueId) { + try { + await window.Gist.removeInboxMessage(queueId); + } catch (error) { + console.error('Failed to delete message:', error); + alert('Failed to delete message. Please try again.'); + } +} + +document.querySelectorAll(".toggle-inbox").forEach(element => { + element.addEventListener("click", () => { + const panel = document.getElementById('inboxPanel'); + if (panel.style.display === 'none') { + panel.style.display = 'block'; + } else { + panel.style.display = 'none'; + } + }); +}); + +refreshInboxMessages(); + +window.Gist.events.on('messageInboxUpdated', async function(messages) { + await refreshInboxMessages(messages); +}); \ No newline at end of file diff --git a/examples/index.html b/examples/index.html index a58bd9b..064a2b6 100644 --- a/examples/index.html +++ b/examples/index.html @@ -7,6 +7,24 @@ +More information can be found on our docs, if you have any question you can email us at support@gist.build