From 458216e86c656beca991bbc1a52cc2ab3efa566a Mon Sep 17 00:00:00 2001 From: William Wong Date: Mon, 8 Aug 2022 23:42:51 +0000 Subject: [PATCH 1/5] Add sample for SharePoint --- .../l.sharepoint-web-part/Dockerfile | 37 +++ .../l.sharepoint-web-part/README.md | 296 ++++++++++++++++++ .../l.sharepoint-web-part/package.json | 13 + .../l.sharepoint-web-part/src/proxy.js | 15 + .../webChat/WebChatWebPart.manifest.json | 32 ++ .../src/webparts/webChat/WebChatWebPart.ts | 103 ++++++ .../webChat/components/IWebChatProps.ts | 9 + .../webChat/components/WebChat.module.scss | 6 + .../webparts/webChat/components/WebChat.tsx | 24 ++ .../spfx/src/webparts/webChat/loc/en-us.js | 13 + .../src/webparts/webChat/loc/mystrings.d.ts | 16 + .../webchat-sharepoint-web-part.png | Bin 0 -> 170938 bytes samples/README.md | 23 +- 13 files changed, 576 insertions(+), 11 deletions(-) create mode 100644 samples/01.getting-started/l.sharepoint-web-part/Dockerfile create mode 100644 samples/01.getting-started/l.sharepoint-web-part/README.md create mode 100644 samples/01.getting-started/l.sharepoint-web-part/package.json create mode 100644 samples/01.getting-started/l.sharepoint-web-part/src/proxy.js create mode 100644 samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/WebChatWebPart.manifest.json create mode 100644 samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/WebChatWebPart.ts create mode 100644 samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/components/IWebChatProps.ts create mode 100644 samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/components/WebChat.module.scss create mode 100644 samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/components/WebChat.tsx create mode 100644 samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/loc/en-us.js create mode 100644 samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/loc/mystrings.d.ts create mode 100644 samples/01.getting-started/l.sharepoint-web-part/webchat-sharepoint-web-part.png diff --git a/samples/01.getting-started/l.sharepoint-web-part/Dockerfile b/samples/01.getting-started/l.sharepoint-web-part/Dockerfile new file mode 100644 index 0000000000..030fac8308 --- /dev/null +++ b/samples/01.getting-started/l.sharepoint-web-part/Dockerfile @@ -0,0 +1,37 @@ +# Setting to a different base image to secure your container supply chain. +ARG REGISTRY=docker.io +ARG BASE_IMAGE=$REGISTRY/node:16 + +FROM $BASE_IMAGE + +EXPOSE 54321 35729 + +RUN npm install --location=global gulp@4 yo @microsoft/generator-sharepoint@1.15.0 + +RUN useradd --create-home --shell /bin/bash spfx && \ + usermod -aG sudo spfx && \ + mkdir -p /usr/app/spfx/ && \ + chown -R spfx:spfx /usr/app && \ + cd /usr/app/spfx +USER spfx + +RUN mkdir -p /usr/app/spfx/ + +WORKDIR /usr/app/ +RUN yo @microsoft/sharepoint --no-insight --skip-install --component-type webpart --component-name WebChat --framework react --solution-name spfx + +WORKDIR /usr/app/spfx/ +RUN npm install --save-dev concurrently http-proxy-middleware selfsigned +RUN gulp trust-dev-cert +ADD src/proxy.js /usr/app/spfx/proxy.js + +# Due to some problems in esbuild@0.12.15, either; +# 1. It has to be installed before botframework-webchat, or; +# 2. Install botframework-webchat, it will fail, then install again will succeed +RUN npm install esbuild@0.12.15 + +RUN npm install botframework-webchat + +ADD --chown=spfx:spfx src/spfx/src/webparts/webChat /usr/app/spfx/src/webparts/webChat + +ENTRYPOINT npx concurrently "node proxy" "gulp serve --nobrowser" diff --git a/samples/01.getting-started/l.sharepoint-web-part/README.md b/samples/01.getting-started/l.sharepoint-web-part/README.md new file mode 100644 index 0000000000..ceaa374227 --- /dev/null +++ b/samples/01.getting-started/l.sharepoint-web-part/README.md @@ -0,0 +1,296 @@ +# Sample - Hosting on SharePoint as web part using React template + +A simple web part using React template hosting Web Chat from NPM. The development build is hosted under Docker. + +![Web Chat hosted inside SharePoint workbench showing a weather card](./webchat-sharepoint-web-part.png) + +# How to run locally + +> Note: Please install Docker before running the following steps. + +- Fork this repository +- Navigate to `/Your-Local-WebChat/samples/01.getting-started/l.sharepoint-web-part` in command line +- Run `npm run build` +- Run `npm start` +- Browse to [https://localhost:4321/temp/manifests.js](https://localhost:4321/temp/manifests.js) and trust the self-signed certificate + - When the browser show "Your connection isn't private" page, type `thisisunsafe` on your keyboard + - It should load the JavaScript file +- Browse to https://<your-sharepoint>.sharepoint.com/sites/<your-site>/\_layouts/15/workbench.aspx +- Add web part +- Select "Web Chat" +- Click the "Edit" button next to Web Chat +- In the properties panel, put your Direct Line token to the "Token" field +- Refresh the page + +> It is **never recommended** to put the Direct Line secret in the browser or client app. To learn more about secrets and tokens for Direct Line, visit [this tutorial on authentication](https://docs.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-direct-line-3-0-authentication). + +# Things to try out + +- Type `help`: you should see a full list of MockBot features +- Type `markdown`: you should see the sample of Markdown +- Type `card weather`: you should see a weather card built using Adaptive Cards +- Type `layout carousel`: you should see a carousel of cards + - Resize the window and see how the carousel changes size + +# Code + +> Jump to [completed code](#completed-code) to see the end-result. + +## Getting started + +This code host a full-feature Web Chat as a SharePoint web part using React template. Web Chat will be installed through NPM with all customization options available. + +### Preparation + +We are hosting the development environment in Docker to enable cloud development. The `Dockerfile` will do the followings to prepare the development environment: + +1. Downloads [`gulp@4`](https://npmjs.com/package/gulp), [`yo` (Yeoman)](https://yeoman.io/), and [`@microsoft/generator-sharepoint` (SharePoint scaffold)](https://npmjs.com/package/@microsoft/generator-sharepoint) +1. Creates a new user account `spfx` (requirement of Yeoman when running under Docker) +1. Creates a new directory `/usr/app/spfx/` +1. Run Yeoman with SharePoint scaffold with the following answers + - What is your solution name? `spfx` + - Which type of client-side component to create? `WebPart` + - What is your Web part name? `Web Chat` + - Which template would you like to use? `React` +1. Installs tooling [`concurrently`](https://npmjs.com/package/concurrently), [`http-proxy-middleware`](https://npmjs.com/package/http-proxy-middleware) and [`selfsigned`](https://npmjs.com/package/selfsigned) +1. Run `gulp trust-dev-cert` to create a self-signed certificate for Webpack/SPFx development server +1. Copies the reverse proxy + - Webpack/SPFx development server only listen to `https://localhost/` but not `https://0.0.0.0/`, the host of the Docker will not able to access it + - We wrote a reverse proxy (`proxy.js`) to proxy requests from `https://0.0.0.0:54321/` to `https://localhost:4321` + - When we run the Docker image, we will map port 54321 back to 4321 as SharePoint workbench only accept development server from https://localhost:4321/ +1. Installs [Web Chat](https://github.com/microsoft/BotFramework-WebChat/) +1. Copies web part code to the container +1. Sets the entrypoint to run both reverse proxy and Webpack/SPFx development server (via `gulp serve`) + - `--nobrowser` is added as the Docker image does not have any browsers installed + +When running the Docker image, it will expose: + +- Port 54321, which will proxy to Webpack/SPFx development server at https://localhost:4321/ + - This port will be remapped to 4321 while running as `npm start`, via `docker run --publish 4321:54321 ...` + - It will use a different self-signed certificate +- Port 35729, which will point to LiveReload server + +### Web part code + +We copied the sample web part code from SharePoint scaffold and modified them to host Web Chat. + +#### `webparts/webChat/components/IWebChatProps.ts` + +Added two props, `domain` and `token`. + +```diff + export interface IWebChatProps { + description: string; ++ domain: string; + isDarkTheme: boolean; + environmentMessage: string; + hasTeamsContext: boolean; ++ token: string; + userDisplayName: string; + } +``` + +#### `webparts/webChat/components/WebChat.module.scss` + +The stylesheet is being replaced by a much simpler version: + +```css +@import '~office-ui-fabric-react/dist/sass/References.scss'; + +.webChat { + height: 800px; + width: 360px; +} +``` + +#### `webparts/webChat/components/WebChat.tsx` + +The component code is being replaced by a React function component which connects to Direct Line or Direct Line ASE (if `domain` prop is specified): + + +```ts +import { useEffect, useState } from 'react'; +import * as React from 'react'; +import ReactWebChat, { createDirectLine, createDirectLineAppServiceExtension } from 'botframework-webchat'; + +import { IWebChatProps } from './IWebChatProps'; +import styles from './WebChat.module.scss'; + +import type { VFC } from 'react'; + +const WebChat: VFC = ({ domain, token }) => { + const [directLine, setDirectLine] = useState(); + + useEffect(() => { + (async function () { + setDirectLine( + domain ? await createDirectLineAppServiceExtension({ domain, token }) : createDirectLine({ token }) + ); + })(); + }, [setDirectLine]); + + return
{!!directLine && }
; +}; + +export default WebChat; +``` + + +#### `webparts/webChat/loc/en-us.js` + +Added localized strings for properties panel: + +```diff + define([], function () { + return { + AppLocalEnvironmentSharePoint: 'The app is running on your local environment as SharePoint web part', + AppLocalEnvironmentTeams: 'The app is running on your local environment as Microsoft Teams app', + AppSharePointEnvironment: 'The app is running on SharePoint page', + AppTeamsTabEnvironment: 'The app is running in Microsoft Teams', + BasicGroupName: 'Group Name', + DescriptionFieldLabel: 'Description Field', ++ DomainFieldLabel: 'Domain (for Direct Line ASE)', + PropertyPaneDescription: 'Description', ++ TokenFieldLabel: 'Token' + }; + }); +``` + +#### `webparts/webChat/loc/mystrings.d.ts` + +Added typing for localized strings for properties panel: + +```diff + declare interface IWebChatWebPartStrings { + AppLocalEnvironmentSharePoint: string; + AppLocalEnvironmentTeams: string; + AppSharePointEnvironment: string; + AppTeamsTabEnvironment: string; + BasicGroupName: string; + DescriptionFieldLabel: string; ++ DomainFieldLabel: string; + PropertyPaneDescription: string; ++ TokenFieldLabel: string; + } + + declare module 'WebChatWebPartStrings' { + const strings: IWebChatWebPartStrings; + export = strings; + } +``` + +### `webparts/webChat/WebChatWebPart.manifest.json` + +Added default values for properties: + +```diff + { + "$schema": "https://developer.microsoft.com/json-schemas/spfx/client-side-web-part-manifest.schema.json", + ... + "preconfiguredEntries": [ + { + "groupId": "5c03119e-3074-46fd-976b-c60198311f70", // Other + "group": { "default": "Other" }, + "title": { "default": "Web Chat" }, + "description": { "default": "Web Chat description" }, + "officeFabricIconFontName": "Page", + "properties": { + "description": "Web Chat", ++ "domain": "", ++ "token": "" + } + } + ] + } +``` + +### `webparts/webChat/WebChatWebPart.ts` + +Added two properties, `domain` and `token`: + +```diff + ... + protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration { + return { + pages: [ + { + header: { + description: strings.PropertyPaneDescription + }, + groups: [ + { + groupName: strings.BasicGroupName, + groupFields: [ + PropertyPaneTextField('description', { + label: strings.DescriptionFieldLabel + }), ++ PropertyPaneTextField('domain', { ++ label: strings.DomainFieldLabel ++ }), ++ PropertyPaneTextField('token', { ++ label: strings.TokenFieldLabel ++ }) + ] + } + ] + } + ] + }; + } + ... +``` + +## Completed code + +Here is the finished `Dockerfile`: + +```dockerfile +# Setting to a different base image to secure your container supply chain. +ARG REGISTRY=docker.io +ARG BASE_IMAGE=$REGISTRY/node:16 + +FROM $BASE_IMAGE + +EXPOSE 54321 35729 + +RUN npm install --location=global gulp@4 yo @microsoft/generator-sharepoint@1.15.0 + +RUN useradd --create-home --shell /bin/bash spfx && \ + usermod -aG sudo spfx && \ + mkdir -p /usr/app/spfx/ && \ + chown -R spfx:spfx /usr/app && \ + cd /usr/app/spfx +USER spfx + +RUN mkdir -p /usr/app/spfx/ + +WORKDIR /usr/app/ +RUN yo @microsoft/sharepoint --no-insight --skip-install --component-type webpart --component-name WebChat --framework react --solution-name spfx + +WORKDIR /usr/app/spfx/ +RUN npm install --save-dev concurrently http-proxy-middleware selfsigned +RUN gulp trust-dev-cert +ADD src/proxy.js /usr/app/spfx/proxy.js + +# Due to some problems in esbuild@0.12.15, either; +# 1. It has to be installed before botframework-webchat, or; +# 2. Install botframework-webchat, it will fail, then install again will succeed +RUN npm install esbuild@0.12.15 + +RUN npm install botframework-webchat + +ADD --chown=spfx:spfx src/spfx/src/webparts/webChat /usr/app/spfx/src/webparts/webChat + +ENTRYPOINT npx concurrently "node proxy" "gulp serve --nobrowser" +``` + +# Further reading + +- https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/get-started/build-a-hello-world-web-part +- https://docs.microsoft.com/en-us/sharepoint/dev/spfx/yeoman-generator-for-spfx-intro +- https://github.com/compulim/experiment-spfx-webchat/ +- https://github.com/pnp/docker-spfx + +## Full list of Web Chat hosted samples + +View the list of [available Web Chat samples](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples) diff --git a/samples/01.getting-started/l.sharepoint-web-part/package.json b/samples/01.getting-started/l.sharepoint-web-part/package.json new file mode 100644 index 0000000000..cad76b0c40 --- /dev/null +++ b/samples/01.getting-started/l.sharepoint-web-part/package.json @@ -0,0 +1,13 @@ +{ + "name": "sample-getting-started-sharepoint-web-part", + "version": "0.0.0-0", + "description": "", + "main": "src/proxy.js", + "scripts": { + "build": "docker build -t spfx .", + "start": "docker run --rm -it -p 4321:54321 -p 35729:35729 spfx" + }, + "author": "Microsoft Corporation", + "license": "MIT", + "type": "module" +} diff --git a/samples/01.getting-started/l.sharepoint-web-part/src/proxy.js b/samples/01.getting-started/l.sharepoint-web-part/src/proxy.js new file mode 100644 index 0000000000..24594535d5 --- /dev/null +++ b/samples/01.getting-started/l.sharepoint-web-part/src/proxy.js @@ -0,0 +1,15 @@ +const { createProxyMiddleware } = require('http-proxy-middleware'); +const { createServer } = require('https'); +const selfSigned = require('selfsigned'); + +const { cert, private: key } = selfSigned.generate([{ name: 'commonName', value: 'localhost:4321' }], { days: 14 }); + +createServer( + { cert, key }, + createProxyMiddleware({ + secure: false, + target: 'https://localhost:4321' + }) +).listen(54321, () => { + console.log('Proxy listening to 54321'); +}); diff --git a/samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/WebChatWebPart.manifest.json b/samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/WebChatWebPart.manifest.json new file mode 100644 index 0000000000..30120c55ef --- /dev/null +++ b/samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/WebChatWebPart.manifest.json @@ -0,0 +1,32 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/spfx/client-side-web-part-manifest.schema.json", + "id": "a72d9f92-2da0-4201-b982-32f3bb8b9a18", + "alias": "WebChatWebPart", + "componentType": "WebPart", + + // The "*" signifies that the version should be taken from the package.json + "version": "*", + "manifestVersion": 2, + + // If true, the component can only be installed on sites where Custom Script is allowed. + // Components that allow authors to embed arbitrary script code should set this to true. + // https://support.office.com/en-us/article/Turn-scripting-capabilities-on-or-off-1f2c515f-5d7e-448a-9fd7-835da935584f + "requiresCustomScript": false, + "supportedHosts": ["SharePointWebPart", "TeamsPersonalApp", "TeamsTab", "SharePointFullPage"], + "supportsThemeVariants": true, + + "preconfiguredEntries": [ + { + "groupId": "5c03119e-3074-46fd-976b-c60198311f70", // Other + "group": { "default": "Other" }, + "title": { "default": "Web Chat" }, + "description": { "default": "Web Chat description" }, + "officeFabricIconFontName": "Page", + "properties": { + "description": "Web Chat", + "domain": "", + "token": "" + } + } + ] +} diff --git a/samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/WebChatWebPart.ts b/samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/WebChatWebPart.ts new file mode 100644 index 0000000000..167b91719c --- /dev/null +++ b/samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/WebChatWebPart.ts @@ -0,0 +1,103 @@ +import * as React from 'react'; +import * as ReactDom from 'react-dom'; +import { Version } from '@microsoft/sp-core-library'; +import { IPropertyPaneConfiguration, PropertyPaneTextField } from '@microsoft/sp-property-pane'; +import { BaseClientSideWebPart } from '@microsoft/sp-webpart-base'; +import { IReadonlyTheme } from '@microsoft/sp-component-base'; + +import * as strings from 'WebChatWebPartStrings'; +import WebChat from './components/WebChat'; +import { IWebChatProps } from './components/IWebChatProps'; + +export interface IWebChatWebPartProps { + description: string; + domain: string; + token: string; +} + +export default class WebChatWebPart extends BaseClientSideWebPart { + private _isDarkTheme: boolean = false; + private _environmentMessage: string = ''; + + public render(): void { + const element: React.ReactElement = React.createElement(WebChat, { + description: this.properties.description, + domain: this.properties.domain, + isDarkTheme: this._isDarkTheme, + environmentMessage: this._environmentMessage, + hasTeamsContext: !!this.context.sdks.microsoftTeams, + token: this.properties.token, + userDisplayName: this.context.pageContext.user.displayName + }); + + ReactDom.render(element, this.domElement); + } + + protected onInit(): Promise { + this._environmentMessage = this._getEnvironmentMessage(); + + return super.onInit(); + } + + private _getEnvironmentMessage(): string { + if (!!this.context.sdks.microsoftTeams) { + // running in Teams + return this.context.isServedFromLocalhost ? strings.AppLocalEnvironmentTeams : strings.AppTeamsTabEnvironment; + } + + return this.context.isServedFromLocalhost + ? strings.AppLocalEnvironmentSharePoint + : strings.AppSharePointEnvironment; + } + + protected onThemeChanged(currentTheme: IReadonlyTheme | undefined): void { + if (!currentTheme) { + return; + } + + this._isDarkTheme = !!currentTheme.isInverted; + const { semanticColors } = currentTheme; + + if (semanticColors) { + this.domElement.style.setProperty('--bodyText', semanticColors.bodyText || null); + this.domElement.style.setProperty('--link', semanticColors.link || null); + this.domElement.style.setProperty('--linkHovered', semanticColors.linkHovered || null); + } + } + + protected onDispose(): void { + ReactDom.unmountComponentAtNode(this.domElement); + } + + protected get dataVersion(): Version { + return Version.parse('1.0'); + } + + protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration { + return { + pages: [ + { + header: { + description: strings.PropertyPaneDescription + }, + groups: [ + { + groupName: strings.BasicGroupName, + groupFields: [ + PropertyPaneTextField('description', { + label: strings.DescriptionFieldLabel + }), + PropertyPaneTextField('domain', { + label: strings.DomainFieldLabel + }), + PropertyPaneTextField('token', { + label: strings.TokenFieldLabel + }) + ] + } + ] + } + ] + }; + } +} diff --git a/samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/components/IWebChatProps.ts b/samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/components/IWebChatProps.ts new file mode 100644 index 0000000000..47e92ae3c0 --- /dev/null +++ b/samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/components/IWebChatProps.ts @@ -0,0 +1,9 @@ +export interface IWebChatProps { + description: string; + domain: string; + isDarkTheme: boolean; + environmentMessage: string; + hasTeamsContext: boolean; + token: string; + userDisplayName: string; +} diff --git a/samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/components/WebChat.module.scss b/samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/components/WebChat.module.scss new file mode 100644 index 0000000000..66543510fe --- /dev/null +++ b/samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/components/WebChat.module.scss @@ -0,0 +1,6 @@ +@import '~office-ui-fabric-react/dist/sass/References.scss'; + +.webChat { + height: 800px; + width: 360px; +} diff --git a/samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/components/WebChat.tsx b/samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/components/WebChat.tsx new file mode 100644 index 0000000000..e5339a54de --- /dev/null +++ b/samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/components/WebChat.tsx @@ -0,0 +1,24 @@ +import { useEffect, useState } from 'react'; +import * as React from 'react'; +import ReactWebChat, { createDirectLine, createDirectLineAppServiceExtension } from 'botframework-webchat'; + +import { IWebChatProps } from './IWebChatProps'; +import styles from './WebChat.module.scss'; + +import type { VFC } from 'react'; + +const WebChat: VFC = ({ domain, token }) => { + const [directLine, setDirectLine] = useState(); + + useEffect(() => { + (async function () { + setDirectLine( + domain ? await createDirectLineAppServiceExtension({ domain, token }) : createDirectLine({ token }) + ); + })(); + }, [setDirectLine]); + + return
{!!directLine && }
; +}; + +export default WebChat; diff --git a/samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/loc/en-us.js b/samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/loc/en-us.js new file mode 100644 index 0000000000..ced845676e --- /dev/null +++ b/samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/loc/en-us.js @@ -0,0 +1,13 @@ +define([], function () { + return { + AppLocalEnvironmentSharePoint: 'The app is running on your local environment as SharePoint web part', + AppLocalEnvironmentTeams: 'The app is running on your local environment as Microsoft Teams app', + AppSharePointEnvironment: 'The app is running on SharePoint page', + AppTeamsTabEnvironment: 'The app is running in Microsoft Teams', + BasicGroupName: 'Group Name', + DescriptionFieldLabel: 'Description Field', + DomainFieldLabel: 'Domain (for Direct Line ASE)', + PropertyPaneDescription: 'Description', + TokenFieldLabel: 'Token' + }; +}); diff --git a/samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/loc/mystrings.d.ts b/samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/loc/mystrings.d.ts new file mode 100644 index 0000000000..bd0a7ae582 --- /dev/null +++ b/samples/01.getting-started/l.sharepoint-web-part/src/spfx/src/webparts/webChat/loc/mystrings.d.ts @@ -0,0 +1,16 @@ +declare interface IWebChatWebPartStrings { + AppLocalEnvironmentSharePoint: string; + AppLocalEnvironmentTeams: string; + AppSharePointEnvironment: string; + AppTeamsTabEnvironment: string; + BasicGroupName: string; + DescriptionFieldLabel: string; + DomainFieldLabel: string; + PropertyPaneDescription: string; + TokenFieldLabel: string; +} + +declare module 'WebChatWebPartStrings' { + const strings: IWebChatWebPartStrings; + export = strings; +} diff --git a/samples/01.getting-started/l.sharepoint-web-part/webchat-sharepoint-web-part.png b/samples/01.getting-started/l.sharepoint-web-part/webchat-sharepoint-web-part.png new file mode 100644 index 0000000000000000000000000000000000000000..a4e0154db89e6a38eea42f15ea08ba535f7cbd56 GIT binary patch literal 170938 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

*_AMu#fmRRZ7wIHuXTb+lS@V*8u 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

  • %vz{><#OZ*v#jx)|%eWE8KO3 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

    {M-85bTSg%C=qG4i}kD=v+D*9{P!`( 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 BJ$e8D literal 0 HcmV?d00001 diff --git a/samples/README.md b/samples/README.md index 5a5650dad0..8d792adb41 100644 --- a/samples/README.md +++ b/samples/README.md @@ -6,11 +6,11 @@ Here you can find all hosted samples of [Web Chat](https://github.com/microsoft/ # Samples list -| Sample Name | Description | Link | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Migration** | | | +| Sample Name | Description | Link | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Migration** | | | | [`00.migration/a.v3-to-v4`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/00.migration/a.v3-to-v4) | Demonstrates how to migrate from your Web Chat v3 bot to v4. | [Migration Demo](https://microsoft.github.io/BotFramework-WebChat/00.migration/a.v3-to-v4) | -| **Getting started** | | | +| **Getting started** | | | | [`01.getting-started/a.full-bundle`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/01.getting-started/a.full-bundle) | Introduces Web Chat embed from a CDN, and demonstrates a simple, full-featured Web Chat. This includes Adaptive Cards, Cognitive Services, and Markdown-It dependencies. | [Full Bundle Demo](https://microsoft.github.io/BotFramework-WebChat/01.getting-started/a.full-bundle) | | [`01.getting-started/b.minimal-bundle`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/01.getting-started/b.minimal-bundle) | Introduces the minimized CDN with only basic dependencies. This does NOT include Adaptive Cards, Cognitive Services dependencies, or Markdown-It dependencies. | [Minimal Bundle Demo](https://microsoft.github.io/BotFramework-WebChat/01.getting-started/b.minimal-bundle) | | [`01.getting-started/c.es5-bundle`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/01.getting-started/c.es5-bundle) | Introduces full-featured Web Chat embed with backwards compatibility for ES5 browsers using Web Chat's ES5 ponyfill. | [ES5 Bundle Demo](https://microsoft.github.io/BotFramework-WebChat/01.getting-started/c.es5-bundle) | @@ -22,7 +22,8 @@ Here you can find all hosted samples of [Web Chat](https://github.com/microsoft/ | [`01.getting-started/i.protocol-direct-line-app-service-extension`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/01.getting-started/i.protocol-direct-line-app-service-extension) | Demonstrates how to use Direct Line App Service Extension chat adapter | [Direct Line App Service Extension Demo](https://microsoft.github.io/BotFramework-WebChat/01.getting-started/i.protocol-direct-line-app-service-extension) | | [`01.getting-started/j.bundle-with-content-security-policy`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/01.getting-started/j.bundle-with-content-security-policy) | Demonstrates how to embed on a host with Content Security Policy configured. | [Content Security Policy Demo](https://microsoft.github.io/BotFramework-WebChat/01.getting-started/j.bundle-with-content-security-policy) | | [`01.getting-started/k.direct-line-token`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/01.getting-started/k.direct-line-token) | Demonstrates how to use a Direct Line token instead of exposing the Direct Line secret. | | -| **Branding, styling, and customization** | | | +| [`01.getting-started/l.sharepoint-web-part`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/01.getting-started/l.sharepoint-web-part) | Demonstrates how to host Web Chat as a SharePoint web part. | | +| **Branding, styling, and customization** | | | | [`02.branding-styling-and-customization/a.branding-web-chat`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/02.branding-styling-and-customization/a.branding-web-chat) | Introduces the ability to style Web Chat to match your brand. This method of custom styling will not break upon Web Chat updates. | [Branding Web Chat Demo](https://microsoft.github.io/BotFramework-WebChat/02.branding-styling-and-customization/a.branding-web-chat) | | [`02.branding-styling-and-customization/b.idiosyncratic-manual-styles`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/02.branding-styling-and-customization/b.idiosyncratic-manual-styles) | Demonstrates how to make manual style changes, and is a more complicated and time-consuming way to customize styling of Web Chat. Manual styles may be broken upon Web Chat updates. | [Idiosyncratic Styling Demo](https://microsoft.github.io/BotFramework-WebChat/02.branding-styling-and-customization/b.idiosyncratic-manual-styles) | | [`02.branding-styling-and-customization/c.display-sender-initials`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/02.branding-styling-and-customization/c.display-sender-initials) | Demonstrates how to display initials for both Web Chat participants. | [Bot initials Demo](https://microsoft.github.io/BotFramework-WebChat/02.branding-styling-and-customization/c.display-sender-initials/) | @@ -34,7 +35,7 @@ Here you can find all hosted samples of [Web Chat](https://github.com/microsoft/ | [`02.branding-styling-and-customization/i.change-locale-and-direction`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/02.branding-styling-and-customization/i.change-locale-and-direction) | Demonstrates how to change locale and direction of the UI (RTL). | [Change Direction Demo](https://microsoft.github.io/BotFramework-WebChat/02.branding-styling-and-customization/i.change-locale-and-direction) | | [`02.branding-styling-and-customization/j.activity-grouping`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/02.branding-styling-and-customization/j.activity-grouping) | Demonstrates how to customize activity grouping behavior. | [Activity Grouping Demo](https://microsoft.github.io/BotFramework-WebChat/02.branding-styling-and-customization/j.activity-grouping) [(Comprehensive)](https://microsoft.github.io/BotFramework-WebChat/02.branding-styling-and-customization/j.activity-grouping/comprehensive.html) | | [`02.branding-styling-and-customization/k.enable-emoji`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/02.branding-styling-and-customization/k.enable-emoji) | Demonstrates how to enable emoji autocorrect in the send box. | [Enable Emoji Demo](https://microsoft.github.io/BotFramework-WebChat/02.branding-styling-and-customization/k.enable-emoji) | -| **Speech** | | | +| **Speech** | | | | [`03.speech/a.direct-line-speech`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/03.speech/a.direct-line-speech) | Demonstrates how to use Direct Line Speech channel in Web Chat. | [Direct Line Speech Demo](https://microsoft.github.io/BotFramework-WebChat/03.speech/a.direct-line-speech) | | [`03.speech/b.cognitive-speech-services-js`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/03.speech/b.cognitive-speech-services-js) | Introduces speech-to-text and text-to-speech ability using Cognitive Services Speech Services API. | [Speech Services with JS Demo](https://microsoft.github.io/BotFramework-WebChat/03.speech/b.cognitive-speech-services-js) | | [`03.speech/c.cognitive-speech-services-with-lexical-result`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/03.speech/c.cognitive-speech-services-with-lexical-result) | Demonstrates how to use lexical result from Cognitive Services Speech Services API. | [Lexical Result Demo](https://microsoft.github.io/BotFramework-WebChat/03.speech/c.cognitive-speech-services-with-lexical-result) | @@ -43,7 +44,7 @@ Here you can find all hosted samples of [Web Chat](https://github.com/microsoft/ | [`03.speech/f.web-browser-speech`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/03.speech/f.web-browser-speech) | Demonstrates how to implement text-to-speech using Web Chat's browser-based Web Speech API. (link to W3C standard in the sample) | [Web Speech API Demo](https://microsoft.github.io/BotFramework-WebChat/03.speech/f.web-browser-speech) | | [`03.speech/g.hybrid-speech`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/03.speech/g.hybrid-speech) | Demonstrates how to use both browser-based Web Speech API for speech-to-text, and Cognitive Services Speech Services API for text-to-speech. | [Hybrid Speech Demo](https://microsoft.github.io/BotFramework-WebChat/03.speech/g.hybrid-speech) | | [`03.speech/h.select-audio-input-device`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/03.speech/h.select-audio-input-device) | Demonstrates how to select an audio input device. | [Select Audio Input Device Demo](https://microsoft.github.io/BotFramework-WebChat/03.speech/h.select-audio-input-device) [(Comprehensive)](https://microsoft.github.io/BotFramework-WebChat/03.speech/h.select-audio-input-device/comprehensive.html) | -| **API** | | | +| **API** | | | | [`04.api/a.welcome-event`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/04.api/a.welcome-event) | Advanced tutorial: Demonstrates how to send welcome event with client capabilities such as browser language. | [Welcome Event Demo](https://microsoft.github.io/BotFramework-WebChat/04.api/a.welcome-event) | | [`04.api/b.piggyback-on-outgoing-activities`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/04.api/b.piggyback-on-outgoing-activities) | Advanced tutorial: Demonstrates how to add custom data to every outgoing activities. | [Backchannel Piggybacking Demo](https://microsoft.github.io/BotFramework-WebChat/04.api/b.piggyback-on-outgoing-activities) | | [`04.api/c.incoming-activity-event`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/04.api/c.incoming-activity-event) | Advanced tutorial: Demonstrates how to forward all incoming activities to a JavaScript event for further processing. | [Incoming Activity Demo](https://microsoft.github.io/BotFramework-WebChat/04.api/c.incoming-activity-event) | @@ -57,8 +58,8 @@ Here you can find all hosted samples of [Web Chat](https://github.com/microsoft/ | [`04.api/k.telemetry-application-insights`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/04.api/k.telemetry-application-insights) | Advanced tutorial: Demonstrates how to collect telemetry measurement using Azure Application Insights. | [Telemetry using Application Insights Demo](https://microsoft.github.io/BotFramework-WebChat/04.api/k.telemetry-application-insights) | | [`04.api/l.telemetry-google-analytics`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/04.api/l.telemetry-google-analytics) | Advanced tutorial: Demonstrates how to collect telemetry measurement using Google Analytics. | [Telemetry using Google Analytics Demo](https://microsoft.github.io/BotFramework-WebChat/04.api/l.telemetry-google-analytics) | | [`04.api/m.enable-composition-mode`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/04.api/m.enable-composition-mode) | Advanced tutorial: Demonstrates how to enable composition mode. | [Telemetry using Google Analytics Demo](https://microsoft.github.io/BotFramework-WebChat/04.api/m.enable-composition-mode) | -| [`04.api/n.save-restore-scroll-position`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/04.api/n.save-restore-scroll-position) | Advanced tutorial: Demonstrates how to save and restore scroll position. | [Telemetry using Google Analytics Demo](https://microsoft.github.io/BotFramework-WebChat/04.api/n.save-restore-scroll-position) | -| **Custom components** | | | +| [`04.api/n.save-restore-scroll-position`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/04.api/n.save-restore-scroll-position) | Advanced tutorial: Demonstrates how to save and restore scroll position. | [Save and Restore Scroll Position Demo](https://microsoft.github.io/BotFramework-WebChat/04.api/n.save-restore-scroll-position) | +| **Custom components** | | | | [`05.custom-components/a.timestamp-grouping`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/05.custom-components/a.timestamp-grouping) | Demonstrates how to customize timestamps by showing or hiding timestamps and changing the grouping of messages by time. | [Timestamp Grouping Demo](https://microsoft.github.io/BotFramework-WebChat/05.custom-components/a.timestamp-grouping) | | [`05.custom-components/b.send-typing-indicator`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/05.custom-components/b.send-typing-indicator) | Demonstrates how to send typing activity when the user start typing on the send box. | [User Typing Indicator Demo](https://microsoft.github.io/BotFramework-WebChat/05.custom-components/b.send-typing-indicator) | | [`05.custom-components/c.user-highlighting`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/05.custom-components/c.user-highlighting) | Demonstrates how to customize the styling of activities based whether the message is from the user or the bot. | [User Highlighting Demo](https://microsoft.github.io/BotFramework-WebChat/05.custom-components/c.user-highlighting) | @@ -69,12 +70,12 @@ Here you can find all hosted samples of [Web Chat](https://github.com/microsoft/ | [`05.custom-components/i.notification`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/05.custom-components/i.notification/) | Demonstrates how to use notification and customize the toast UI. | [Notification Demo](https://microsoft.github.io/BotFramework-WebChat/05.custom-components/i.notification) | | [`05.custom-components/j.typing-indicator`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/05.custom-components/j.typing-indicator/) | Demonstrates how to customize the typing indicator. | [Customize Typing Indicator Demo](https://microsoft.github.io/BotFramework-WebChat/05.custom-components/j.typing-indicator) | | [`05.custom-components/k.per-message-avatar`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/05.custom-components/k.per-message-avatar/) | Demonstrates how to customize the avatar on a per-message basis. | [Customize Avatar Demo](https://microsoft.github.io/BotFramework-WebChat/05.custom-components/k.per-message-avatar) [(Comprehensive)](https://microsoft.github.io/BotFramework-WebChat/05.custom-components/k.per-message-avatar/comprehensive.html) | -| **Recomposing UI** | | | +| **Recomposing UI** | | | | [`06.recomposing-ui/a.minimizable-web-chat`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/06.recomposing-ui/a.minimizable-web-chat) | Advanced tutorial: Demonstrates how to add the Web Chat interface to your website as a minimizable show/hide chat box. | [Minimizable Web Chat Demo](https://microsoft.github.io/BotFramework-WebChat/06.recomposing-ui/a.minimizable-web-chat) | | [`06.recomposing-ui/b.speech-ui`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/06.recomposing-ui/b.speech-ui) | Advanced tutorial: Demonstrates how to fully customize key components of your bot, in this case speech, which entirely replaces the text-based transcript UI and instead shows a simple speech button with the bot's response. | [Speech UI Demo](https://microsoft.github.io/BotFramework-WebChat/06.recomposing-ui/b.speech-ui) | | [`06.recomposing-ui/c.smart-display`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/06.recomposing-ui/c.smart-display) | Demonstrates how to compose Web Chat UI into a Smart Display | [Smart Display Demo](https://microsoft.github.io/BotFramework-WebChat/06.recomposing-ui/c.smart-display) | | [`06.recomposing-ui/d.plain-ui`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/06.recomposing-ui/d.plain-ui) | Advanced tutorial: Demonstrates how to customize the Web Chat UI by building from ground up instead of needing to rewrite entire Web Chat components. | [Plain UI Demo](https://microsoft.github.io/BotFramework-WebChat/06.recomposing-ui/d.plain-ui) | -| **Advanced Web Chat apps** | | | +| **Advanced Web Chat apps** | | | | [`07.advanced-web-chat-apps/a.upload-to-azure-storage`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/07.advanced-web-chat-apps/a.upload-to-azure-storage) | Demonstrates how to use upload attachments directly to Azure Storage | [Upload to Azure Storage Demo](https://webchat-sample-upload-to-azure.azurewebsites.net/) | | [`07.advanced-web-chat-apps/b.sso-for-enterprise`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/07.advanced-web-chat-apps/b.sso-for-enterprise) | Demonstrates how to use single sign-on for enterprise single-page applications using OAuth | [Single Sign-On for Enterprise Single-Page Applications Demo](https://webchat-sample-sso.azurewebsites.net/) | | [`07.advanced-web-chat-apps/c.sso-for-intranet`](https://github.com/microsoft/BotFramework-WebChat/tree/main/samples/07.advanced-web-chat-apps/c.sso-for-intranet) | Demonstrates how to use single sign-on for Intranet apps using Azure Active Directory | [Single Sign-On for Intranet Apps Demo](https://webchat-sample-sso-intranet.azurewebsites.net/) | From 226928ba83f6b8e7da62c9ac6765f4e9f30b3165 Mon Sep 17 00:00:00 2001 From: William Wong Date: Mon, 8 Aug 2022 23:45:43 +0000 Subject: [PATCH 2/5] Add entry --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a446f21b74..0e3e87b61a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -67,6 +67,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Resolves [#4316](https://github.com/microsoft/BotFramework-WebChat/issues/4316). Using [ESBuild](https://esbuild.github.io/) as development server, by [@compulim](https://github.com/compulim), in PR [#4330](https://github.com/microsoft/BotFramework-WebChat/issues/4330) +### Samples + +- Added [`01.getting-started/l.sharepoint-web-part`](../../samples/01.getting-started/l.sharepoint-web-part) for hosting Web Chat as a SharePoint web part, in PR [#4385](https://github.com/microsoft/BotFramework-WebChat/pull/4385), by [@compulim](https://github.com/compulim) + ## [4.15.2] - 2022-05-09 ### Breaking changes From 28a021668678a4507e126a4fbfe3cb0fa3ad723a Mon Sep 17 00:00:00 2001 From: William Wong Date: Mon, 8 Aug 2022 23:51:53 +0000 Subject: [PATCH 3/5] Clean up --- .../l.sharepoint-web-part/README.md | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/samples/01.getting-started/l.sharepoint-web-part/README.md b/samples/01.getting-started/l.sharepoint-web-part/README.md index ceaa374227..b9e8871be2 100644 --- a/samples/01.getting-started/l.sharepoint-web-part/README.md +++ b/samples/01.getting-started/l.sharepoint-web-part/README.md @@ -44,30 +44,30 @@ This code host a full-feature Web Chat as a SharePoint web part using React temp We are hosting the development environment in Docker to enable cloud development. The `Dockerfile` will do the followings to prepare the development environment: -1. Downloads [`gulp@4`](https://npmjs.com/package/gulp), [`yo` (Yeoman)](https://yeoman.io/), and [`@microsoft/generator-sharepoint` (SharePoint scaffold)](https://npmjs.com/package/@microsoft/generator-sharepoint) -1. Creates a new user account `spfx` (requirement of Yeoman when running under Docker) -1. Creates a new directory `/usr/app/spfx/` +1. Download [`gulp@4`](https://npmjs.com/package/gulp), [`yo` (Yeoman)](https://yeoman.io/), and [`@microsoft/generator-sharepoint` (SharePoint scaffold)](https://npmjs.com/package/@microsoft/generator-sharepoint) +1. Create a new user account `spfx` (requirement of Yeoman when running under Docker) +1. Create a new directory `/usr/app/spfx/` 1. Run Yeoman with SharePoint scaffold with the following answers - What is your solution name? `spfx` - Which type of client-side component to create? `WebPart` - What is your Web part name? `Web Chat` - Which template would you like to use? `React` -1. Installs tooling [`concurrently`](https://npmjs.com/package/concurrently), [`http-proxy-middleware`](https://npmjs.com/package/http-proxy-middleware) and [`selfsigned`](https://npmjs.com/package/selfsigned) +1. Install tooling [`concurrently`](https://npmjs.com/package/concurrently), [`http-proxy-middleware`](https://npmjs.com/package/http-proxy-middleware) and [`selfsigned`](https://npmjs.com/package/selfsigned) 1. Run `gulp trust-dev-cert` to create a self-signed certificate for Webpack/SPFx development server -1. Copies the reverse proxy +1. Copy the reverse proxy - Webpack/SPFx development server only listen to `https://localhost/` but not `https://0.0.0.0/`, the host of the Docker will not able to access it - We wrote a reverse proxy (`proxy.js`) to proxy requests from `https://0.0.0.0:54321/` to `https://localhost:4321` - When we run the Docker image, we will map port 54321 back to 4321 as SharePoint workbench only accept development server from https://localhost:4321/ -1. Installs [Web Chat](https://github.com/microsoft/BotFramework-WebChat/) -1. Copies web part code to the container -1. Sets the entrypoint to run both reverse proxy and Webpack/SPFx development server (via `gulp serve`) +1. Install [Web Chat](https://github.com/microsoft/BotFramework-WebChat/) +1. Copy web part code to the container +1. Set the entrypoint to run both reverse proxy and Webpack/SPFx development server (via `gulp serve`) - `--nobrowser` is added as the Docker image does not have any browsers installed When running the Docker image, it will expose: - Port 54321, which will proxy to Webpack/SPFx development server at https://localhost:4321/ - - This port will be remapped to 4321 while running as `npm start`, via `docker run --publish 4321:54321 ...` - - It will use a different self-signed certificate + - While running `npm start`, this port will be remapped to 4321 via `docker run --publish 4321:54321 ...` + - This port will use a different self-signed certificate - Port 35729, which will point to LiveReload server ### Web part code @@ -92,7 +92,7 @@ Added two props, `domain` and `token`. #### `webparts/webChat/components/WebChat.module.scss` -The stylesheet is being replaced by a much simpler version: +The stylesheet is being replaced. ```css @import '~office-ui-fabric-react/dist/sass/References.scss'; @@ -105,7 +105,7 @@ The stylesheet is being replaced by a much simpler version: #### `webparts/webChat/components/WebChat.tsx` -The component code is being replaced by a React function component which connects to Direct Line or Direct Line ASE (if `domain` prop is specified): +The component code is being replaced by a React function component. It connects to Direct Line or Direct Line ASE (if `domain` prop is specified). ```ts @@ -138,7 +138,7 @@ export default WebChat; #### `webparts/webChat/loc/en-us.js` -Added localized strings for properties panel: +Added localized strings for new property in the properties panel. ```diff define([], function () { @@ -158,7 +158,7 @@ Added localized strings for properties panel: #### `webparts/webChat/loc/mystrings.d.ts` -Added typing for localized strings for properties panel: +Added typing for localized strings for new properties. ```diff declare interface IWebChatWebPartStrings { @@ -181,7 +181,7 @@ Added typing for localized strings for properties panel: ### `webparts/webChat/WebChatWebPart.manifest.json` -Added default values for properties: +Added default values for new properties. ```diff { @@ -206,7 +206,7 @@ Added default values for properties: ### `webparts/webChat/WebChatWebPart.ts` -Added two properties, `domain` and `token`: +Added two properties: `domain` and `token`. ```diff ... From dbacb7f5d172efb09db91780a56dc3abed22278e Mon Sep 17 00:00:00 2001 From: William Wong Date: Mon, 8 Aug 2022 23:54:21 +0000 Subject: [PATCH 4/5] Clean up --- samples/01.getting-started/l.sharepoint-web-part/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/01.getting-started/l.sharepoint-web-part/README.md b/samples/01.getting-started/l.sharepoint-web-part/README.md index b9e8871be2..aa45a91f3c 100644 --- a/samples/01.getting-started/l.sharepoint-web-part/README.md +++ b/samples/01.getting-started/l.sharepoint-web-part/README.md @@ -1,6 +1,6 @@ # Sample - Hosting on SharePoint as web part using React template -A simple web part using React template hosting Web Chat from NPM. The development build is hosted under Docker. +A simple SharePoint web part using React template hosting Web Chat from NPM. The SharePoint Framework (SPFx) development environment is hosted under Docker. ![Web Chat hosted inside SharePoint workbench showing a weather card](./webchat-sharepoint-web-part.png) @@ -42,7 +42,7 @@ This code host a full-feature Web Chat as a SharePoint web part using React temp ### Preparation -We are hosting the development environment in Docker to enable cloud development. The `Dockerfile` will do the followings to prepare the development environment: +We are hosting SPFx in Docker to enable cloud development. The `Dockerfile` will do the followings to prepare the development environment: 1. Download [`gulp@4`](https://npmjs.com/package/gulp), [`yo` (Yeoman)](https://yeoman.io/), and [`@microsoft/generator-sharepoint` (SharePoint scaffold)](https://npmjs.com/package/@microsoft/generator-sharepoint) 1. Create a new user account `spfx` (requirement of Yeoman when running under Docker) From eff7391312da485025524a83ba94a215dafb3b05 Mon Sep 17 00:00:00 2001 From: William Wong Date: Mon, 8 Aug 2022 23:56:43 +0000 Subject: [PATCH 5/5] Clean up --- .../01.getting-started/l.sharepoint-web-part/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/samples/01.getting-started/l.sharepoint-web-part/README.md b/samples/01.getting-started/l.sharepoint-web-part/README.md index aa45a91f3c..d00b48a455 100644 --- a/samples/01.getting-started/l.sharepoint-web-part/README.md +++ b/samples/01.getting-started/l.sharepoint-web-part/README.md @@ -42,7 +42,7 @@ This code host a full-feature Web Chat as a SharePoint web part using React temp ### Preparation -We are hosting SPFx in Docker to enable cloud development. The `Dockerfile` will do the followings to prepare the development environment: +SPFx is hosted in Docker to enable cloud development. The `Dockerfile` will do the followings to prepare the development environment: 1. Download [`gulp@4`](https://npmjs.com/package/gulp), [`yo` (Yeoman)](https://yeoman.io/), and [`@microsoft/generator-sharepoint` (SharePoint scaffold)](https://npmjs.com/package/@microsoft/generator-sharepoint) 1. Create a new user account `spfx` (requirement of Yeoman when running under Docker) @@ -56,8 +56,8 @@ We are hosting SPFx in Docker to enable cloud development. The `Dockerfile` will 1. Run `gulp trust-dev-cert` to create a self-signed certificate for Webpack/SPFx development server 1. Copy the reverse proxy - Webpack/SPFx development server only listen to `https://localhost/` but not `https://0.0.0.0/`, the host of the Docker will not able to access it - - We wrote a reverse proxy (`proxy.js`) to proxy requests from `https://0.0.0.0:54321/` to `https://localhost:4321` - - When we run the Docker image, we will map port 54321 back to 4321 as SharePoint workbench only accept development server from https://localhost:4321/ + - A reverse proxy (`proxy.js`) to proxy requests from `https://0.0.0.0:54321/` to `https://localhost:4321` + - When running the Docker image, port 54321 will be mapped back to 4321 as SharePoint workbench only accept development server from https://localhost:4321/ 1. Install [Web Chat](https://github.com/microsoft/BotFramework-WebChat/) 1. Copy web part code to the container 1. Set the entrypoint to run both reverse proxy and Webpack/SPFx development server (via `gulp serve`) @@ -66,13 +66,13 @@ We are hosting SPFx in Docker to enable cloud development. The `Dockerfile` will When running the Docker image, it will expose: - Port 54321, which will proxy to Webpack/SPFx development server at https://localhost:4321/ - - While running `npm start`, this port will be remapped to 4321 via `docker run --publish 4321:54321 ...` + - While running `npm start`, this port will be mapped to 4321 via `docker run --publish 4321:54321 ...` - This port will use a different self-signed certificate - Port 35729, which will point to LiveReload server ### Web part code -We copied the sample web part code from SharePoint scaffold and modified them to host Web Chat. +These are based on web part sample code from SharePoint scaffold and modified to host Web Chat. #### `webparts/webChat/components/IWebChatProps.ts`