Skip to content

Commit 24d2314

Browse files
authored
Merge pull request #1526 from NicolasKheirallah/react-application-news-ticker
2 parents c81a53d + 0b91e14 commit 24d2314

16 files changed

Lines changed: 7166 additions & 2595 deletions

File tree

samples/react-application-news-ticker/README.md

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ An SPFx Extension that displays news as a running text at the top of every moder
88

99
## Compatibility
1010

11-
![SPFx 1.20.0](https://img.shields.io/badge/SPFx-1.20.0-green.svg)
12-
![Node.js LTS v18](https://img.shields.io/badge/Node.js-LTS%20v18-green.svg)
11+
![SPFx 1.21.1](https://img.shields.io/badge/SPFx-1.21.1-green.svg)
12+
![Node.js LTS v22](https://img.shields.io/badge/Node.js-LTS%20v22-green.svg)
1313
![Compatible with SharePoint Online](https://img.shields.io/badge/SharePoint%20Online-Compatible-green.svg)
1414
![Does not work with SharePoint 2019](https://img.shields.io/badge/SharePoint%20Server%202019-Incompatible-red.svg "SharePoint Server 2019 requires SPFx 1.4.1 or lower")
1515
![Does not work with SharePoint 2016 (Feature Pack 2)](https://img.shields.io/badge/SharePoint%20Server%202016%20(Feature%20Pack%202)-Incompatible-red.svg "SharePoint Server 2016 Feature Pack 2 requires SPFx 1.1")
@@ -26,10 +26,12 @@ An SPFx Extension that displays news as a running text at the top of every moder
2626
## Prerequisites
2727

2828
Create list as the data source for the app with below details:
29+
2930
1. List title: `News`
30-
2. Required Columns:
31+
2. Required Columns:
3132
- `Title`: single line text
3233
- `Content`: multiline text (plain text)
34+
- `RssUrl`: single line text (plain text)
3335
- `PublishDate`: date
3436
- `ExpiryDate`: date
3537
3. Required View:
@@ -39,14 +41,11 @@ Create list as the data source for the app with below details:
3941
- Sort: `PublishDate Ascending`
4042
- Limit: `10`
4143

42-
## Solution
43-
44-
Solution|Author(s)
45-
--------|---------
46-
react-application-news-ticker | [Ari Gunawan](https://github.com/AriGunawan) ([@arigunawan3023](https://twitter.com/arigunawan3023))
47-
react-application-news-ticker | [Sudharsan Kesavanarayanan](https://github.com/sudharsank) (NTT Ltd, [@sudharsank](https://twitter.com/sudharsank))
48-
react-application-news-ticker | [Nicolas Kheirallah](https://github.com/NicolasKheirallah)
44+
## Contributors
4945

46+
- [Ari Gunawan](https://github.com/AriGunawan)
47+
- [Sudharsan Kesavanarayanan](https://github.com/sudharsank)
48+
- [Nicolas Kheirallah](https://github.com/NicolasKheirallah)
5049

5150
## Version history
5251

@@ -56,7 +55,8 @@ Version|Date|Comments
5655
1.1|October 17, 2021|Update SPFx version to 1.12.1
5756
1.2|August 27, 2021|Fixed failed upgrade and update SPFx version to 1.15.2
5857
1.3|October 24, 2024|Upgraded to SPFX 1.20, React 17 , Node 18! Rewrite the code to use Graph API, Also coded a native Ticker instead of another module as it's was no longer maintained! Also refactored a lot of the code
59-
58+
2.0|July 4, 2025|Added RSS feed integration support for external news sources, Major UI/UX improvements: Removed icons for cleaner design, replaced bullet separators with pipe characters, fixed hover behavior to pause instead of blanking, optimized CSS with min-height constraints, fixed memory leaks with proper event listener, improved performance
59+
2.1|September 8, 2025|Updated to SPFX 1.21. and Typescript 5.3
6060

6161
## Minimal Path to Awesome
6262

@@ -71,22 +71,30 @@ Version|Date|Comments
7171
This extension illustrates the following concepts:
7272

7373
- Display news as a running text at the top of every modern page where the app installed
74-
- Get news items from a SharePoint list view using PnPJS
75-
- Stop the running text when user hover it
74+
- Get news items from SharePoint lists across multiple sites (current site, home site, hub site) using Microsoft Graph API
75+
- **RSS Feed Integration** - Fetch and display news from external RSS feeds with automatic date filtering
76+
- Native React ticker component with smooth animations and accessibility support
77+
- Pause animation on hover while maintaining content visibility
78+
- Clean, minimalist design with pipe separators and no icons
79+
- Memory leak prevention with proper event listener cleanup
80+
- Configurable speed, direction, and visual styling options
81+
- Accessibility features including reduced motion preference support
82+
- **RSS Content Processing** - Automatic HTML sanitization and content extraction from RSS feeds
7683

7784
## References
7885

7986
- [SharePoint Framework](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/sharepoint-framework-overview)
8087

81-
8288
## Debug URL for testing
83-
Here's a debug URL for testing around this sample.
8489

85-
```
90+
Here's a debug URL for testing around this sample.
91+
92+
```shell
8693
?debugManifestsFile=https://localhost:4321/temp/manifests.js
8794
```
8895

8996
## Disclaimer
97+
9098
**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.**
9199

92100
## Help
@@ -103,4 +111,4 @@ For questions regarding this sample, [create a new question](https://github.com/
103111

104112
Finally, if you have an idea for improvement, [make a suggestion](https://github.com/pnp/sp-dev-fx-extensions/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Abug-suspected&template=suggestion.yml&sample=react-application-news-ticker&authors=@AriGunawan&title=react-application-news-ticker%20-%20).
105113

106-
<img src="https://m365-visitor-stats.azurewebsites.net/sp-dev-fx-extensions/samples/react-application-news-ticker" />
114+
<img src="https://m365-visitor-stats.azurewebsites.net/sp-dev-fx-extensions/samples/react-application-news-ticker" />

samples/react-application-news-ticker/assets/sample.json

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"An SPFx Extension that displays news as a running text at the top of every modern page."
1010
],
1111
"creationDateTime": "2021-04-19",
12-
"updateDateTime": "2024-10-24",
12+
"updateDateTime": "2025-09-08",
1313
"products": [
1414
"SharePoint"
1515
],
@@ -20,7 +20,7 @@
2020
},
2121
{
2222
"key": "SPFX-VERSION",
23-
"value": "1.20.0"
23+
"value": "1.21.1"
2424
}
2525
],
2626
"thumbnails": [
@@ -42,8 +42,29 @@
4242
"gitHubAccount": "AriGunawan",
4343
"pictureUrl": "https://github.com/AriGunawan.png",
4444
"name": "Ari Gunawan"
45+
},
46+
{
47+
"gitHubAccount": "sudharsank",
48+
"pictureUrl": "https://github.com/sudharsank.png",
49+
"name": "Sudharsan Kesavanarayanan"
50+
},
51+
{
52+
"gitHubAccount": "NicolasKheirallah",
53+
"pictureUrl": "https://github.com/NicolasKheirallah.png",
54+
"name": "Nicolas Kheirallah"
4555
}
4656
],
47-
"references": []
48-
}
49-
]
57+
"references": [
58+
{
59+
"name": "Overview of SharePoint Framework Extensions",
60+
"description": "You can use SharePoint Framework (SPFx) Extensions to extend the SharePoint user experience. With SPFx Extensions, you can customize more facets of the SharePoint experience, including notification areas, toolbars, and list data views. SPFx Extensions are available in all Microsoft 365 subscriptions for production usage.",
61+
"url": "https://docs.microsoft.com/sharepoint/dev/spfx/extensions/overview-extensions?WT.mc_id=m365-15741-cxa"
62+
},
63+
{
64+
"name": "Use page placeholders from Application Customizer",
65+
"description": "Application Customizers provide access to well-known locations on SharePoint pages that you can modify based on your business and functional requirements. For example, you can create dynamic header and footer experiences that render across all the pages in SharePoint Online.",
66+
"url": "https://docs.microsoft.com/sharepoint/dev/spfx/extensions/get-started/using-page-placeholder-with-extensions?WT.mc_id=m365-15741-cxa"
67+
}
68+
]
69+
}
70+
]

samples/react-application-news-ticker/config/package-solution.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"solution": {
44
"name": "React News Ticker",
55
"id": "65603ca8-004c-469c-8b6f-b24ef5f2e794",
6-
"version": "1.2.0.0",
6+
"version": "2.1.0.0",
77
"includeClientSideAssets": true,
88
"skipFeatureDeployment": true,
99
"isDomainIsolated": false,

0 commit comments

Comments
 (0)