Skip to content

Instantly share code, notes, and snippets.

@supertopoz
Created March 10, 2021 07:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save supertopoz/0a1ccb8d86b05e509093e4b12a80842f to your computer and use it in GitHub Desktop.
Save supertopoz/0a1ccb8d86b05e509093e4b12a80842f to your computer and use it in GitHub Desktop.
<aura:component implements="flexipage:availableForAllPageTypes" access="global" >
<lightning:utilityBarAPI aura:id="utilitybar" />
<aura:attribute name="recordId" type="String" />
<aura:attribute name="data" type="String" />
<lightning:navigation aura:id="navService" />
<aura:handler name="init" value="{!this}" action="{!c.doInit } " />
<lightning:container
aura:id="SendBird_Bar"
src="{!$Resource.sendbird_bar + '/index.html'}"
onmessage="{!c.handleMessage}"
/>
<!-- optional loading spinner -->
<aura:attribute name="toggleSpinner" type="boolean" default="true" />
<aura:if isTrue="{!v.toggleSpinner}">
<div class="exampleHolder">
<lightning:spinner alternativeText="Loading" size="large" />
</div>
</aura:if>
</aura:component>
({
handleError: function(component, event, helper) {
var error = event.getParams();
console.log("Error from Utilities Bar:", error);
},
handleMessage: function(component, message, helper) {
var payload = message.getParams().payload;
var event = payload.event;
console.log("MESSAGE ARRIVED IN UTILITIES BAR", message);
if (payload === "READY") helper.initUIKit(component, message, helper);
if (event === "NEWMESSAGE")
helper.newSendbirdUserMessageArrived(component, message, helper);
}
});
({
initUIKit: function(component, message, helper) {
var userId = $A.get("$SObjectType.CurrentUser.Id");
var message = { userId: userId };
try {
component.set("v.toggleSpinner", false);
component.find("SendBird_Bar").message(message);
console.warn("SALEFORCE --> Lightning Component --> Sent:", message);
} catch (err) {
console.error("Error from Utilities Bar:", err);
}
},
newSendbirdUserMessageArrived: function(component, message, helper) {
var payload = message.getParams().payload;
var unreadCount = payload.unreadCount;
console.warn(
"Lightning Container --> SALESFORCE --> unread count arrived:",
unreadCount
);
var utilityAPI = component.find("utilitybar");
console.log(utilityAPI)
utilityAPI.setUtilityLabel({
label: "Unread Messages"
});
utilityAPI.setUtilityIcon({
icon: "chat",
options: { iconVariant: "success", fill: "green" }
});
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment