Skip to content

Commit

Permalink
Merge pull request #3783 from joaojmendes/main
Browse files Browse the repository at this point in the history
  • Loading branch information
hugoabernier authored Jul 15, 2023
2 parents 5a37534 + 597306f commit af97f8d
Show file tree
Hide file tree
Showing 120 changed files with 50,101 additions and 0 deletions.
20 changes: 20 additions & 0 deletions samples/react-my-dashboard/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# TeamsFx files
env/.env.*.user
env/.env.local
.DS_Store
build
appPackage/build

# dependencies
/node_modules

# testing
/coverage

# production
/build

# misc
.DS_Store
.env
.deployment
104 changes: 104 additions & 0 deletions samples/react-my-dashboard/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# My Dashboard

## Summary

This SPFx app allows quick access to user agenda, ToDo Tasks, Files and News and Relevant People related to user.

![react-my-dashboard](./assets/MyDashboard_dark.png)
![react-my-dashboard](./assets/MyDashboard_sp.png)
![react-my-dashboard](./assets/MyDashboard_office.png)
![react-my-dashboard](./assets/mobileTeamsApp02.PNG) ![react-my-dashboard](./assets/mobileTeamsApp01.PNG) ![react-my-dashboard](./assets/mobileTeamsApp03.PNG)

## Compatibility

| :warning: Important |
|:---------------------------|
| Every SPFx version is only compatible with specific version(s) of Node.js. In order to be able to build this sample, please ensure that the version of Node on your workstation matches one of the versions listed in this section. This sample will not work on a different version of Node.|
|Refer to <https://aka.ms/spfx-matrix> for more information on SPFx compatibility. |

![SPFx 1.17.2](https://img.shields.io/badge/SPFx-1.17.2-green.svg)
![Node.js v16 | v14](https://img.shields.io/badge/Node.js-v16%20|%20v14-green.svg)
![SharePoint Online](https://img.shields.io/badge/SharePoint-Online-yellow.svg)
![Workbench Hosted: Does not work with local workbench](https://img.shields.io/badge/Workbench-Hosted-yellow.svg "Does not work with local workbench")
![Compatible with Remote Containers](https://img.shields.io/badge/Remote%20Containers-Compatible-green.svg)

## Applies to

* [SharePoint Framework](https://learn.microsoft.com/sharepoint/dev/spfx/sharepoint-framework-overview)
* [Microsoft 365 tenant](https://learn.microsoft.com/sharepoint/dev/spfx/set-up-your-development-environment)

## Prerequisites

This sample use Microsoft Graph Toolkit V3 RC and use the following components :

* mgt-Agenda
* mgt-ToDo
* mgt-Person and PersonCard
* mgt-Search-results
* mgt-get
* mgt-files

Please add the required Microsoft Graph Permissions. Please see [Microsoft Graph Toolkit overview](https://learn.microsoft.com/graph/toolkit/overview)

## Contributors

* [João Mendes](https://github.com/joaojmendes)

## Version history

Version|Date|Comments
-------|----|--------
1.0.0|June 23, 2023|Initial release

## Minimal Path to Awesome

The project was created with Visual Studio Teams Toolkit.

* Clone this repository
* Navigate to `src` folder
* in the command line run:
* `npm install`
* `gulp build`
* `gulp bundle --ship`
* `gulp package-solution --ship`
* Add and Deploy Package to AppCatalog

> This sample can also be opened with [VS Code Remote Development](https://code.visualstudio.com/docs/remote/remote-overview). Visit <https://aka.ms/spfx-devcontainer> for further instructions.
## Features

This sample illustrates the following concepts on top of the SharePoint Framework:

* using React for building SharePoint Framework client-side web parts
* using Microsoft Graph Toolkit
* Using React Hooks
* using Global State Management (JOTAI)
* using FLuentUI V9
* using Visual Studio Teams Toolkit

## References

* [Getting started with SharePoint Framework](https://learn.microsoft.com/sharepoint/dev/spfx/set-up-your-developer-tenant)
* [Building for Microsoft teams](https://learn.microsoft.com/sharepoint/dev/spfx/build-for-teams-overview)
* [Use Microsoft Graph in your solution](https://learn.microsoft.com/sharepoint/dev/spfx/web-parts/get-started/using-microsoft-graph-apis)
* [Publish SharePoint Framework applications to the Marketplace](https://learn.microsoft.com/sharepoint/dev/spfx/publish-to-marketplace-overview)
* [Microsoft 365 Patterns and Practices](https://aka.ms/m365pnp) - Guidance, tooling, samples and open-source controls for your Microsoft 365 development
* [Fluent UI version 9](https://github.com/microsoft/fluentui/tree/master/packages/react-components) - Converged Fluent UI components

## Help

We do not support samples, but we this community is always willing to help, and we want to improve these samples. We use GitHub to track issues, which makes it easy for community members to volunteer their time and help resolve issues.

If you're having issues building the solution, please run [spfx doctor](https://pnp.github.io/cli-microsoft365/cmd/spfx/spfx-doctor/) from within the solution folder to diagnose incompatibility issues with your environment.

If you encounter any issues while using this sample, [create a new issue](https://github.com/pnp/sp-dev-fx-webparts/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Abug-suspected%2Csample%3A%20react-my-dashboard&template=bug-report.yml&sample=react-my-dashboard&authors=@smaity%20@joaojmendes&title=react-my-dashboard%20-%20).

For questions regarding this sample, [create a new question](https://github.com/pnp/sp-dev-fx-webparts/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Aquestion%2Csample%3A%20react-my-dashboard&template=question.yml&sample=react-my-dashboard&authors=@smaity%20@joaojmendes&title=react-my-dashboard%20-%20).

Finally, if you have an idea for improvement, [make a suggestion](https://github.com/pnp/sp-dev-fx-webparts/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Aenhancement%2Csample%3A%20react-my-dashboard&template=question.yml&sample=react-my-dashboard&authors=@smaity%20@joaojmendes&title=react-my-dashboard%20-%20).

## Disclaimer

**THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.**

<img src="https://m365-visitor-stats.azurewebsites.net/sp-dev-fx-webparts/samples/react-my-dashboard" />
Binary file added samples/react-my-dashboard/appPackage/color.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
63 changes: 63 additions & 0 deletions samples/react-my-dashboard/appPackage/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
{
"$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.16/MicrosoftTeams.schema.json",
"manifestVersion": "1.16",
"packageName": "com.microsoft.teams.extension",
"id": "${{TEAMS_APP_ID}}",
"version": "1.0.0",
"developer": {
"name": "SPFx + Teams Dev",
"websiteUrl": "https://products.office.com/en-us/sharepoint/collaboration",
"privacyUrl": "https://privacy.microsoft.com/en-us/privacystatement",
"termsOfUseUrl": "https://www.microsoft.com/en-us/servicesagreement"
},
"name": {
"short": "MyDashBoardSPFx-${{TEAMSFX_ENV}}",
"full": "Full name for MyDashBoardSPFx"
},
"description": {
"short": "Short description of MyDashBoardSPFx",
"full": "Full description of MyDashBoardSPFx"
},
"icons": {
"color": "color.png",
"outline": "outline.png"
},
"accentColor": "#004578",
"staticTabs": [
{
"entityId": "90a4a655-2864-4cda-bc53-f3d46b02f75d",
"name": "DashBoard",
"contentUrl": "https://{teamSiteDomain}/_layouts/15/TeamsLogon.aspx?SPFX=true&dest=/_layouts/15/teamshostedapp.aspx%3Fteams%26personal%26componentId=90a4a655-2864-4cda-bc53-f3d46b02f75d%26forceLocale={locale}",
"websiteUrl": "https://products.office.com/en-us/sharepoint/collaboration",
"scopes": [
"personal"
]
}
],
"configurableTabs": [
{
"configurationUrl": "https://{teamSiteDomain}{teamSitePath}/_layouts/15/TeamsLogon.aspx?SPFX=true&dest={teamSitePath}/_layouts/15/teamshostedapp.aspx%3FopenPropertyPane=true%26teams%26componentId=90a4a655-2864-4cda-bc53-f3d46b02f75d%26forceLocale={locale}",
"canUpdateConfiguration": true,
"scopes": [
"team"
]
}
],
"permissions": [
"identity",
"messageTeamMembers"
],
"validDomains": [
"*.login.microsoftonline.com",
"*.sharepoint.com",
"*.sharepoint-df.com",
"spoppe-a.akamaihd.net",
"spoprod-a.akamaihd.net",
"resourceseng.blob.core.windows.net",
"msft.spoppe.com"
],
"webApplicationInfo": {
"resource": "https://{teamSiteDomain}",
"id": "00000003-0000-0ff1-ce00-000000000000"
}
}
63 changes: 63 additions & 0 deletions samples/react-my-dashboard/appPackage/manifest.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
{
"$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.16/MicrosoftTeams.schema.json",
"manifestVersion": "1.16",
"packageName": "com.microsoft.teams.extension",
"id": "${{TEAMS_APP_ID}}",
"version": "1.0.0",
"developer": {
"name": "SPFx + Teams Dev",
"websiteUrl": "https://products.office.com/en-us/sharepoint/collaboration",
"privacyUrl": "https://privacy.microsoft.com/en-us/privacystatement",
"termsOfUseUrl": "https://www.microsoft.com/en-us/servicesagreement"
},
"name": {
"short": "MyDashBoardSPFx-${{TEAMSFX_ENV}}",
"full": "Full name for MyDashBoardSPFx"
},
"description": {
"short": "Short description of MyDashBoardSPFx",
"full": "Full description of MyDashBoardSPFx"
},
"icons": {
"color": "color.png",
"outline": "outline.png"
},
"accentColor": "#004578",
"staticTabs": [
{
"entityId": "90a4a655-2864-4cda-bc53-f3d46b02f75d",
"name": "DashBoard",
"contentUrl": "https://{teamSiteDomain}/_layouts/15/TeamsLogon.aspx?SPFX=true&dest={teamSitePath}/_layouts/15/TeamsWorkBench.aspx%3FcomponentId=90a4a655-2864-4cda-bc53-f3d46b02f75d%26teams%26personal%26forceLocale={locale}%26loadSPFX%3Dtrue%26debugManifestsFile%3Dhttps%3A%2F%2Flocalhost%3A4321%2Ftemp%2Fmanifests.js",
"websiteUrl": "https://products.office.com/en-us/sharepoint/collaboration",
"scopes": [
"personal"
]
}
],
"configurableTabs": [
{
"configurationUrl": "https://{teamSiteDomain}{teamSitePath}/_layouts/15/TeamsLogon.aspx?SPFX=true&dest={teamSitePath}/_layouts/15/TeamsWorkBench.aspx%3FcomponentId=90a4a655-2864-4cda-bc53-f3d46b02f75d%26openPropertyPane=true%26teams%26forceLocale={locale}%26loadSPFX%3Dtrue%26debugManifestsFile%3Dhttps%3A%2F%2Flocalhost%3A4321%2Ftemp%2Fmanifests.js",
"canUpdateConfiguration": true,
"scopes": [
"team"
]
}
],
"permissions": [
"identity",
"messageTeamMembers"
],
"validDomains": [
"*.login.microsoftonline.com",
"*.sharepoint.com",
"*.sharepoint-df.com",
"spoppe-a.akamaihd.net",
"spoprod-a.akamaihd.net",
"resourceseng.blob.core.windows.net",
"msft.spoppe.com"
],
"webApplicationInfo": {
"resource": "https://{teamSiteDomain}",
"id": "00000003-0000-0ff1-ce00-000000000000"
}
}
Binary file added samples/react-my-dashboard/appPackage/outline.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
50 changes: 50 additions & 0 deletions samples/react-my-dashboard/assets/sample.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
[
{
"name": "pnp-sp-dev-spfx-web-parts-react-my-dashboard",
"source": "pnp",
"title": "My Dashboard",
"shortDescription": "This SPFx app allows quick access to user agenda, ToDo Tasks, Files and News and Relevant People related to user.",
"url": "https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-my-dashboard",
"downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-my-dashboard",
"longDescription": [
"This SPFx app allows quick access to user agenda, ToDo Tasks, Files and News and Relevant People related to user."
],
"creationDateTime": "2023-06-23",
"updateDateTime": "2023-06-23",
"products": [
"SharePoint"
],
"metadata": [
{
"key": "CLIENT-SIDE-DEV",
"value": "React"
},
{
"key": "SPFX-VERSION",
"value": "1.17.2"
}
],
"thumbnails": [
{
"type": "image",
"order": 100,
"url": "https://github.com/pnp/sp-dev-fx-webparts/raw/main/samples/react-my-dashboard/assets/MyDashboard_default.png",
"alt": "Web Part Preview"
}
],
"authors": [
{
"gitHubAccount": "joaojmendes",
"pictureUrl": "https://github.com/joaojmendes.png",
"name": "João Mendes"
}
],
"references": [
{
"name": "Build your first SharePoint client-side web part",
"description": "Client-side web parts are client-side components that run in the context of a SharePoint page. Client-side web parts can be deployed to SharePoint environments that support the SharePoint Framework. You can also use modern JavaScript web frameworks, tools, and libraries to build them.",
"url": "https://docs.microsoft.com/sharepoint/dev/spfx/web-parts/get-started/build-a-hello-world-web-part"
}
]
}
]
7 changes: 7 additions & 0 deletions samples/react-my-dashboard/env/.env.dev
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Built-in environment variables
TEAMSFX_ENV=dev

# Generated during provision, you can also add your own variables.
TEAMS_APP_ID=

# Secrets. Keys prefixed with `SECRET_` will be masked in Teams Toolkit logs.
Loading

0 comments on commit af97f8d

Please sign in to comment.