From c3a3fac611fe96c42769f11c4823ac9499d23253 Mon Sep 17 00:00:00 2001 From: Michael Kochell <6913320+mickmister@users.noreply.github.com> Date: Tue, 28 Dec 2021 22:46:22 -0500 Subject: [PATCH] add app bar icon --- Makefile | 2 +- public/app-bar-icon.png | Bin 0 -> 4467 bytes webapp/src/index.tsx | 13 +++++++++++++ webapp/src/types/mattermost-webapp/index.d.ts | 1 + 4 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 public/app-bar-icon.png diff --git a/Makefile b/Makefile index 7872bff..5e677a5 100644 --- a/Makefile +++ b/Makefile @@ -103,7 +103,7 @@ ifneq ($(wildcard $(ASSETS_DIR)/.),) cp -r $(ASSETS_DIR) dist/$(PLUGIN_ID)/ endif ifneq ($(HAS_PUBLIC),) - cp -r public dist/$(PLUGIN_ID)/ + cp -r public dist/$(PLUGIN_ID)/public/ endif ifneq ($(HAS_SERVER),) mkdir -p dist/$(PLUGIN_ID)/server diff --git a/public/app-bar-icon.png b/public/app-bar-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8a5215c8fe779a917fc9b43a856126ef8c7e075d GIT binary patch literal 4467 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 bHYCc%D;8}f?~FmO9bm^ddu;Q!Gtc}T@CDW$ literal 0 HcmV?d00001 diff --git a/webapp/src/index.tsx b/webapp/src/index.tsx index e4e3286..f25c261 100644 --- a/webapp/src/index.tsx +++ b/webapp/src/index.tsx @@ -2,6 +2,7 @@ import React from 'react'; import {Store, Action} from 'redux'; import {GlobalState} from 'mattermost-redux/types/store'; +import {getConfig} from 'mattermost-redux/selectors/entities/general'; import manifest from './manifest'; @@ -22,6 +23,18 @@ export default class Plugin { 'Chess', 'Start a chess game.', ); + + if (registry.registerAppBarComponent) { + const siteUrl = getConfig(store.getState())?.SiteURL || ''; + const iconURL = `${siteUrl}/plugins/${manifest.id}/public/app-bar-icon.png`; + registry.registerAppBarComponent( + iconURL, + () => { + store.dispatch(challenge() as any); + }, + 'Start a chess game.', + ); + } } } diff --git a/webapp/src/types/mattermost-webapp/index.d.ts b/webapp/src/types/mattermost-webapp/index.d.ts index 307e99b..f262c30 100644 --- a/webapp/src/types/mattermost-webapp/index.d.ts +++ b/webapp/src/types/mattermost-webapp/index.d.ts @@ -10,6 +10,7 @@ export interface PluginRegistry { registerReducer(reducer: Reducer); registerChannelHeaderButtonAction(icon: React.ReactNode, action: (channel: Channel, channelMembership: ChannelMembership) => void, dropdownText: string, tooltip: string); registerMainMenuAction(text: React.ReactNode, action: () => void, mobileIcon: React.ReactNode); + registerAppBarComponent(iconURL: string, action: (channel: Channel, member: ChannelMembership) => void, tooltipText: React.ReactNode) // Add more if needed from https://developers.mattermost.com/extend/plugins/webapp/reference }