From bb1453f6465cee5dcd2ddfcaa2c781d0f83db7df Mon Sep 17 00:00:00 2001 From: summitbaj Date: Tue, 25 Nov 2025 10:17:54 -0800 Subject: [PATCH 1/8] Added a new snippet for activity feed --- power-apps/activity-feed/README.md | 600 ++++++++++++++++++ .../activity-feed/assets/activityfeed.jpg | Bin 0 -> 101015 bytes power-apps/activity-feed/assets/sample.json | 57 ++ .../activity-feed/source/activityfeed.yaml | 270 ++++++++ 4 files changed, 927 insertions(+) create mode 100644 power-apps/activity-feed/README.md create mode 100644 power-apps/activity-feed/assets/activityfeed.jpg create mode 100644 power-apps/activity-feed/assets/sample.json create mode 100644 power-apps/activity-feed/source/activityfeed.yaml diff --git a/power-apps/activity-feed/README.md b/power-apps/activity-feed/README.md new file mode 100644 index 0000000..0ee99be --- /dev/null +++ b/power-apps/activity-feed/README.md @@ -0,0 +1,600 @@ +\# Upload File + +Displays a real-time feed of activities such as posts, comments, status updates. Great for collaboration and keeping users informed. + + + +!\[Upload File](./assets/activityfeed.gif) + + + +\## Authors + + + +Snippet|Author + +--------|--------- + +Summit Bajracharya | \[GitHub](https://github.com/summitbaj) (\[@summitbajracharya](https://www.linkedin.com/in/summitbajracharya) ) + + + +\## Minimal path to awesome + + + +1\. Open your canvas app in \*\*Power Apps\*\* + +2\. Copy the contents of the \*\*\[YAML-file](./source/activityfeed.yaml)\*\* + +3\. Click on the three dots of the screen where you want to add the snippet and select "Paste code" + + + +\## Code + + + +``` YAML + +\- conTimelineMain: + +  Control: GroupContainer@1.3.0 + +  Variant: AutoLayout + +  Properties: + +  Fill: =RGBA(255, 255, 255, 1) + +  Height: =353 + +  LayoutAlignItems: =LayoutAlignItems.Center + +  LayoutDirection: =LayoutDirection.Vertical + +  PaddingBottom: =8 + +  PaddingLeft: =8 + +  PaddingRight: =8 + +  PaddingTop: =8 + +  X: =60 + +  Y: =60 + +  Children: + +  - conTimelineHeader: + +  Control: GroupContainer@1.3.0 + +  Variant: AutoLayout + +  Properties: + +  DropShadow: =DropShadow.None + +  FillPortions: =0 + +  Height: =30 + +  LayoutAlignItems: =LayoutAlignItems.Center + +  LayoutDirection: =LayoutDirection.Horizontal + +  LayoutMaxHeight: =0 + +  LayoutMaxWidth: =0 + +  LayoutMinHeight: =16 + +  LayoutMinWidth: =16 + +  Children: + +  - Label2: + +  Control: Label@2.5.1 + +  Properties: + +  AlignInContainer: =AlignInContainer.Start + +  BorderColor: =RGBA(0, 0, 0, 0) + +  BorderStyle: =BorderStyle.None + +  BorderThickness: =2 + +  Color: =RGBA(50, 49, 48, 1) + +  DisabledBorderColor: =RGBA(0, 0, 0, 0) + +  DisabledColor: =RGBA(161, 159, 157, 1) + +  FocusedBorderThickness: =4 + +  Font: =Font.'Segoe UI' + +  Height: =30 + +  LayoutMaxHeight: =0 + +  LayoutMaxWidth: =0 + +  LayoutMinHeight: =16 + +  LayoutMinWidth: =16 + +  Text: ="Activity" + +  Width: =70 + +  - Rectangle2\_1: + +  Control: Rectangle@2.3.0 + +  Properties: + +  BorderColor: =RGBA(0, 0, 0, 0) + +  BorderStyle: =BorderStyle.None + +  BorderThickness: =2 + +  DisabledFill: =RGBA(161, 159, 157, 1) + +  Fill: =RGBA(240, 240, 240, 1) + +  FillPortions: =1 + +  FocusedBorderThickness: =4 + +  Height: =2 + +  HoverFill: =RGBA(0, 120, 212, 1) + +  LayoutMaxHeight: =0 + +  LayoutMaxWidth: =0 + +  LayoutMinHeight: =16 + +  LayoutMinWidth: =5 + +  PressedFill: =RGBA(0, 120, 212, 1) + +  Width: =5 + +  - galTimeline: + +  Control: Gallery@2.15.0 + +  Variant: BrowseLayout\_Vertical\_ThreeTextVariant\_ver5.0 + +  Properties: + +  BorderColor: =RGBA(245, 245, 245, 1) + +  Items: =Sort(colActivity,Date,SortOrder.Descending) + +  TemplateSize: =80 + +  X: =40 + +  Y: =40 + +  Children: + +  - conGalContainer: + +  Control: GroupContainer@1.3.0 + +  Variant: AutoLayout + +  Properties: + +  DropShadow: =DropShadow.None + +  Height: =80 + +  LayoutAlignItems: =LayoutAlignItems.Center + +  LayoutDirection: =LayoutDirection.Horizontal + +  Width: =Parent.Width + +  Children: + +  - conGalNextArrow: + +  Control: Classic/Icon@2.5.0 + +  Properties: + +  AccessibleLabel: =Self.Tooltip + +  AlignInContainer: =AlignInContainer.Start + +  BorderColor: =RGBA(0, 0, 0, 0) + +  Color: =RGBA(166, 166, 166, 1) + +  DisabledBorderColor: =RGBA(245, 245, 245, 1) + +  DisabledColor: =RGBA(225, 223, 221, 1) + +  DisabledFill: =RGBA(0, 0, 0, 0) + +  FocusedBorderThickness: =4 + +  Height: =30 + +  HoverBorderColor: =RGBA(0, 0, 0, 0) + +  HoverColor: =RGBA(16, 110, 190, 1) + +  HoverFill: =RGBA(0, 0, 0, 0) + +  Icon: =Icon.ChevronRight + +  PaddingBottom: =5 + +  PaddingLeft: =5 + +  PaddingRight: =5 + +  PaddingTop: =5 + +  PressedBorderColor: =RGBA(0, 0, 0, 0) + +  PressedColor: =RGBA(16, 110, 190, 1) + +  PressedFill: =RGBA(0, 0, 0, 0) + +  Tooltip: ="View item details" + +  Width: =30 + +  Y: =33 + +  - conGalSeperator: + +  Control: GroupContainer@1.3.0 + +  Variant: AutoLayout + +  Properties: + +  DropShadow: =DropShadow.None + +  FillPortions: =0 + +  LayoutAlignItems: =LayoutAlignItems.Center + +  LayoutDirection: =LayoutDirection.Vertical + +  LayoutMaxHeight: =0 + +  LayoutMaxWidth: =0 + +  LayoutMinHeight: =16 + +  LayoutMinWidth: =16 + +  Width: =30 + +  Children: + +  - conGalIcon: + +  Control: GroupContainer@1.3.0 + +  Variant: AutoLayout + +  Properties: + +  AlignInContainer: =AlignInContainer.Start + +  Fill: =RGBA(54, 176, 75, 1) + +  FillPortions: =0 + +  Height: =30 + +  LayoutAlignItems: =LayoutAlignItems.Center + +  LayoutDirection: =LayoutDirection.Vertical + +  LayoutMaxHeight: =0 + +  LayoutMaxWidth: =0 + +  LayoutMinHeight: =16 + +  LayoutMinWidth: =16 + +  PaddingBottom: =8 + +  PaddingLeft: =8 + +  PaddingRight: =8 + +  PaddingTop: =8 + +  Width: =30 + +  Children: + +  - Icon1: + +  Control: Classic/Icon@2.5.0 + +  Properties: + +  BorderColor: =RGBA(0, 0, 0, 0) + +  Color: =RGBA(255, 255, 255, 1) + +  DisabledBorderColor: =RGBA(245, 245, 245, 1) + +  DisabledColor: =RGBA(225, 223, 221, 1) + +  DisabledFill: =RGBA(0, 0, 0, 0) + +  FocusedBorderThickness: =4 + +  Height: =14 + +  HoverBorderColor: =RGBA(0, 0, 0, 0) + +  HoverColor: =RGBA(16, 110, 190, 1) + +  HoverFill: =RGBA(0, 0, 0, 0) + +  Icon: =Icon.CalendarBlank + +  LayoutMaxHeight: =0 + +  LayoutMaxWidth: =0 + +  LayoutMinHeight: =16 + +  LayoutMinWidth: =16 + +  PressedBorderColor: =RGBA(0, 0, 0, 0) + +  PressedColor: =RGBA(16, 110, 190, 1) + +  PressedFill: =RGBA(0, 0, 0, 0) + +  Width: =14 + +  - conGalRect: + +  Control: Rectangle@2.3.0 + +  Properties: + +  BorderColor: =RGBA(0, 0, 0, 0) + +  BorderStyle: =BorderStyle.None + +  BorderThickness: =2 + +  DisabledFill: =RGBA(161, 159, 157, 1) + +  Fill: =RGBA(54, 176, 75, 1) + +  FillPortions: =1 + +  FocusedBorderThickness: =4 + +  Height: =10 + +  HoverFill: =RGBA(0, 120, 212, 1) + +  LayoutMaxHeight: =0 + +  LayoutMaxWidth: =0 + +  LayoutMinHeight: =16 + +  LayoutMinWidth: =16 + +  PressedFill: =RGBA(0, 120, 212, 1) + +  Width: =5 + +  - conGalContent: + +  Control: GroupContainer@1.3.0 + +  Variant: AutoLayout + +  Properties: + +  DropShadow: =DropShadow.None + +  LayoutAlignItems: =LayoutAlignItems.Center + +  LayoutDirection: =LayoutDirection.Vertical + +  LayoutMaxHeight: =0 + +  LayoutMaxWidth: =0 + +  LayoutMinHeight: =16 + +  LayoutMinWidth: =16 + +  PaddingBottom: =8 + +  PaddingLeft: =15 + +  PaddingRight: =8 + +  PaddingTop: =8 + +  Children: + +  - conGalTimelineHeader: + +  Control: GroupContainer@1.3.0 + +  Variant: AutoLayout + +  Properties: + +  DropShadow: =DropShadow.None + +  LayoutAlignItems: =LayoutAlignItems.Center + +  LayoutDirection: =LayoutDirection.Horizontal + +  LayoutMaxHeight: =0 + +  LayoutMaxWidth: =0 + +  LayoutMinHeight: =16 + +  LayoutMinWidth: =16 + +  Children: + +  - conGalTimelineTitle: + +  Control: Label@2.5.1 + +  Properties: + +  AlignInContainer: =AlignInContainer.Start + +  BorderColor: =RGBA(0, 0, 0, 1) + +  Color: =RGBA(39, 113, 194, 1) + +  DisabledColor: =RGBA(161, 159, 157, 1) + +  FillPortions: =1 + +  Font: =Font.'Segoe UI' + +  FontWeight: =FontWeight.Semibold + +  Height: =27 + +  PaddingBottom: =0 + +  PaddingLeft: =0 + +  PaddingRight: =0 + +  PaddingTop: =0 + +  Size: =12 + +  Text: =ThisItem.Name + +  VerticalAlign: =VerticalAlign.Top + +  Width: =295 + +  X: =50 + +  Y: =47 + +  - conGalTimelineDate: + +  Control: Label@2.5.1 + +  Properties: + +  AlignInContainer: =AlignInContainer.Start + +  BorderColor: =RGBA(0, 0, 0, 1) + +  Color: =RGBA(50, 49, 48, 1) + +  DisabledColor: =RGBA(161, 159, 157, 1) + +  Font: =Font.'Segoe UI' + +  Height: =26 + +  PaddingBottom: =0 + +  PaddingLeft: =12 + +  PaddingRight: =0 + +  PaddingTop: =0 + +  Size: =10 + +  Text: =ThisItem.Date + +  VerticalAlign: =VerticalAlign.Top + +  Width: =117 + +  X: =436 + +  Y: =24 + +  - htmGalTimelineContent: + +  Control: HtmlViewer@2.1.0 + +  Properties: + +  AlignInContainer: =AlignInContainer.Stretch + +  DisabledBorderColor: =RGBA(161, 159, 157, 1) + +  Font: =Font.'Segoe UI' + +  HtmlText: =ThisItem.Details + +  LayoutMaxHeight: =0 + +  LayoutMaxWidth: =0 + +  LayoutMinHeight: =16 + +  LayoutMinWidth: =16 + +  PaddingBottom: =0 + +  PaddingLeft: =0 + +  PaddingRight: =0 + +  PaddingTop: =0 + +  Size: =10 + + + +``` + +\## 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.\*\* + + + + + + + + + + + diff --git a/power-apps/activity-feed/assets/activityfeed.jpg b/power-apps/activity-feed/assets/activityfeed.jpg new file mode 100644 index 0000000000000000000000000000000000000000..eea300142abb3428a020b242311f8f7123ac93e3 GIT binary patch literal 101015 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�yhm6^AjcWK&5%j)k zUyP&3VfvJkTZ63AgW=}nTb1V>HML$oj951W=0-g2IzTB-Z1$t7i|BR3QGOAvG0JIU} zU;xn%_k?Cn0g~Oe7q)gOTDw=v=~yyMWqaP|qHGhbYmZD&o1R+lu>u|KP}_dXB_J0| z&&|3iUw_K1M?5JQ`Qb&;6N9kl#!sdZmvkybqnV3%N~mV8z8T={GU`=ITKAl6P06;w zgOQ!`JR!S42T+F^1i`VJa4_pOT?#OuFqI+W0ny#aZGcDZM(hP#1i7{lQ?>STS*u4M z4!Q@jsZGYDcybW1N>z}|aj*m+7zMC(!{8XloH11JPugyse@t-|@?EQ)@~XPE8W0Eq ztOM(55Khcu9!yZl^PG+dxo|N{?(SFO7N3~kPh5tW_~@;|(5@tvGrD`~6R_>^ML>cv z6EcFSVvc=WQ4`Un0=*VDXk9;U<`(ZL*`_93uPb))cy3k1ZIrGQ(*HV0htlIoKu70r zl|y-HR#l@D6FWN{r{yMgzNLP(nYz=a+WWfH5Nh}8%k~i#pm?ZxAOYHNXo$!-U2Gx9 zj#BJUT3b=J!NG3!)m6~Fk=bHm1Uxqr?O~|zeBrrwZ7A%{CLw3qnQk;gHv1D)ze-P) z4NkNZpz4S8PeO!WB2OUz5tBkAC73XD+U7nq6>a^qCn%<}$kODF_ywD@%ny6im{oJx z(bJju@#x4PV?f|Bjl>o~C4+8GpbJ`lD8^3_YHO=q#GsB#sdq}b`Yg{}%g^?Xh&!qy zxCPmx$hF5AN|>16@X+dqDltn{qeHKDu9nMn-ix~whqp}TN#$tM9?zU;jiS7#ic?T{ zvt;5gt8{$##{wFhXw@&P;pdpwR_wj%Et%GHQ9e>jNXH=}YwBXd6wE&7ECPjh#v)@v zlquL^#89^==Qz_=x{8&C*~Dnu_1bwhmnV?s!qOgw8+x7DQ2;)tKe4W7;U|(%TaxR_ z*D5?-s@O*r3A{BfYc@|FJiLgNX?t?LjsMw)u!!)}q6H-QA{y`+T#T&>9pPD_hBesc`bs*gi|I}(6v#o%_vrsA-+rH*Zc(%r6JRXP~N=2j~EEMZ|twiPs=cDRvo8b3; zPjz+nhUCLK5l5#2wqC#sU+x!nLVjXzQeugG?RF;{CkjVtMvHyY7S#~Jbu!&_IkBJf zQ*5%|k~B9{-ohYr|7mv3s1K`l|cD%dqG$+pl+S7r2snNdYo&CPB7-s^m z;=^muBFOWvEwh;QctjEMn;Dkgh+1+B_@5dKe{VQI|DQJ+06*=2X*&ELUN1qVf-Vya zyN8&KZ~(UmK68V8uS+8>$0dzpNGMvTRlOqZ1xk{H{~8p(z3XT#NpUuc$gT+=^o#{#4gJDoqL^}P%k0k87I z!luZB_!-=?)__UA514*_lG+&zZJOaZ3c{}CX}zjaLp0#c||V1W|8 zC+mDSX0}(1bLhk|At^xT558*ZC|k|%1j97NyS zd%B+Oe4tx_{=sgVA^Df{;6Kit|E#Z>f_3N`SCN~kNHNQ4W?IC>-^jbeV=zL;D!oBv zPbn)G`AuG~@F15%@Eu;x8+e4xs8}z zhj+_i&4TETDH*fc#NJOV8CYKGN}SQ|_6qndcwjWubO-aJmD5!@;O*P)97Kwt)%?cg zxZ9`9#H89dU%#-+x$WJwoHL9ylhURwAz;TzHYo^K>n(d8eO#@>m%=XzPf)hQUhbJZKr4d?@$vlIWg3uwKkZ-sQRt0-y7q7j zvKe+`8K|}Y`-y+OfxkxJuMzlb1pXR=ufdbJpRgk^@kVg!GHWL@mwq!NM zdN>N5*2xMzlo%;<{Sll!%=P0Dua#^|n(}#ma>=nI!#|cK|K45PU&sCXcf9|{n=JqU literal 0 HcmV?d00001 diff --git a/power-apps/activity-feed/assets/sample.json b/power-apps/activity-feed/assets/sample.json new file mode 100644 index 0000000..f4693ec --- /dev/null +++ b/power-apps/activity-feed/assets/sample.json @@ -0,0 +1,57 @@ +[ + { + "$schema": "https://developer.microsoft.com/en-us/json-schemas/pnp/samples/v1.0/metadata-schema.json", + "name": "pnp-powerplatform-snippets-activity-feed", + "version": "1.0.0.0", + "source": "pnp", + "creationDateTime": "2025-11-25T00:00:00.000Z", + "updateDateTime": "2025-11-25T00:00:00.000Z", + "title": "Activity Feed", + "shortDescription": "This snippet provides a real-time activity feed to display user actions and updates in a collaborative environment.", + "longDescription": [ + "This snippet enables a dynamic activity feed that displays recent activities such as posts, comments, status updates, and attachments. It helps keep users informed and engaged with real-time collaboration." + ], + "url": "https://github.com/pnp/powerplatform-snippets/tree/main/power-apps/activity-feed/", + "products": [ + "Power Platform", + "Power Apps", + "powerplatform-snippets", + "power-apps-snippets" + ], + "tags": [ + "activity", + "feed", + "collaboration", + "real-time" + ], + "categories": [ + "User Interface", + "Collaboration" + ], + "metadata": [ + { + "key": "Product", + "value": "Power Apps" + }, + { + "key": "Type", + "value": "Snippet" + } + ], + "thumbnails": [ + { + "type": "image", + "order": 100, + "url": "https://raw.githubusercontent.com/pnp/powerplatform-snippets/main/power-apps/activity-feed/assets/activityfeed.jpg", + "alt": "Activity Feed Preview" + } + ], + "authors": [ + { + "gitHubAccount": "summitbaj", + "name": "Summit Bajracharya", + "pictureUrl": "https://github.com/summitbaj.png" + } + ] + } +] diff --git a/power-apps/activity-feed/source/activityfeed.yaml b/power-apps/activity-feed/source/activityfeed.yaml new file mode 100644 index 0000000..5654401 --- /dev/null +++ b/power-apps/activity-feed/source/activityfeed.yaml @@ -0,0 +1,270 @@ +- conTimelineMain: + Control: GroupContainer@1.3.0 + Variant: AutoLayout + Properties: + Fill: =RGBA(255, 255, 255, 1) + Height: =353 + LayoutAlignItems: =LayoutAlignItems.Center + LayoutDirection: =LayoutDirection.Vertical + PaddingBottom: =8 + PaddingLeft: =8 + PaddingRight: =8 + PaddingTop: =8 + X: =60 + Y: =60 + Children: + - conTimelineHeader: + Control: GroupContainer@1.3.0 + Variant: AutoLayout + Properties: + DropShadow: =DropShadow.None + FillPortions: =0 + Height: =30 + LayoutAlignItems: =LayoutAlignItems.Center + LayoutDirection: =LayoutDirection.Horizontal + LayoutMaxHeight: =0 + LayoutMaxWidth: =0 + LayoutMinHeight: =16 + LayoutMinWidth: =16 + Children: + - Label2: + Control: Label@2.5.1 + Properties: + AlignInContainer: =AlignInContainer.Start + BorderColor: =RGBA(0, 0, 0, 0) + BorderStyle: =BorderStyle.None + BorderThickness: =2 + Color: =RGBA(50, 49, 48, 1) + DisabledBorderColor: =RGBA(0, 0, 0, 0) + DisabledColor: =RGBA(161, 159, 157, 1) + FocusedBorderThickness: =4 + Font: =Font.'Segoe UI' + Height: =30 + LayoutMaxHeight: =0 + LayoutMaxWidth: =0 + LayoutMinHeight: =16 + LayoutMinWidth: =16 + Text: ="Activity" + Width: =70 + - Rectangle2_1: + Control: Rectangle@2.3.0 + Properties: + BorderColor: =RGBA(0, 0, 0, 0) + BorderStyle: =BorderStyle.None + BorderThickness: =2 + DisabledFill: =RGBA(161, 159, 157, 1) + Fill: =RGBA(240, 240, 240, 1) + FillPortions: =1 + FocusedBorderThickness: =4 + Height: =2 + HoverFill: =RGBA(0, 120, 212, 1) + LayoutMaxHeight: =0 + LayoutMaxWidth: =0 + LayoutMinHeight: =16 + LayoutMinWidth: =5 + PressedFill: =RGBA(0, 120, 212, 1) + Width: =5 + - galTimeline: + Control: Gallery@2.15.0 + Variant: BrowseLayout_Vertical_ThreeTextVariant_ver5.0 + Properties: + BorderColor: =RGBA(245, 245, 245, 1) + Items: =Sort(colActivity,Date,SortOrder.Descending) + TemplateSize: =80 + X: =40 + Y: =40 + Children: + - conGalContainer: + Control: GroupContainer@1.3.0 + Variant: AutoLayout + Properties: + DropShadow: =DropShadow.None + Height: =80 + LayoutAlignItems: =LayoutAlignItems.Center + LayoutDirection: =LayoutDirection.Horizontal + Width: =Parent.Width + Children: + - conGalNextArrow: + Control: Classic/Icon@2.5.0 + Properties: + AccessibleLabel: =Self.Tooltip + AlignInContainer: =AlignInContainer.Start + BorderColor: =RGBA(0, 0, 0, 0) + Color: =RGBA(166, 166, 166, 1) + DisabledBorderColor: =RGBA(245, 245, 245, 1) + DisabledColor: =RGBA(225, 223, 221, 1) + DisabledFill: =RGBA(0, 0, 0, 0) + FocusedBorderThickness: =4 + Height: =30 + HoverBorderColor: =RGBA(0, 0, 0, 0) + HoverColor: =RGBA(16, 110, 190, 1) + HoverFill: =RGBA(0, 0, 0, 0) + Icon: =Icon.ChevronRight + PaddingBottom: =5 + PaddingLeft: =5 + PaddingRight: =5 + PaddingTop: =5 + PressedBorderColor: =RGBA(0, 0, 0, 0) + PressedColor: =RGBA(16, 110, 190, 1) + PressedFill: =RGBA(0, 0, 0, 0) + Tooltip: ="View item details" + Width: =30 + Y: =33 + - conGalSeperator: + Control: GroupContainer@1.3.0 + Variant: AutoLayout + Properties: + DropShadow: =DropShadow.None + FillPortions: =0 + LayoutAlignItems: =LayoutAlignItems.Center + LayoutDirection: =LayoutDirection.Vertical + LayoutMaxHeight: =0 + LayoutMaxWidth: =0 + LayoutMinHeight: =16 + LayoutMinWidth: =16 + Width: =30 + Children: + - conGalIcon: + Control: GroupContainer@1.3.0 + Variant: AutoLayout + Properties: + AlignInContainer: =AlignInContainer.Start + Fill: =RGBA(54, 176, 75, 1) + FillPortions: =0 + Height: =30 + LayoutAlignItems: =LayoutAlignItems.Center + LayoutDirection: =LayoutDirection.Vertical + LayoutMaxHeight: =0 + LayoutMaxWidth: =0 + LayoutMinHeight: =16 + LayoutMinWidth: =16 + PaddingBottom: =8 + PaddingLeft: =8 + PaddingRight: =8 + PaddingTop: =8 + Width: =30 + Children: + - Icon1: + Control: Classic/Icon@2.5.0 + Properties: + BorderColor: =RGBA(0, 0, 0, 0) + Color: =RGBA(255, 255, 255, 1) + DisabledBorderColor: =RGBA(245, 245, 245, 1) + DisabledColor: =RGBA(225, 223, 221, 1) + DisabledFill: =RGBA(0, 0, 0, 0) + FocusedBorderThickness: =4 + Height: =14 + HoverBorderColor: =RGBA(0, 0, 0, 0) + HoverColor: =RGBA(16, 110, 190, 1) + HoverFill: =RGBA(0, 0, 0, 0) + Icon: =Icon.CalendarBlank + LayoutMaxHeight: =0 + LayoutMaxWidth: =0 + LayoutMinHeight: =16 + LayoutMinWidth: =16 + PressedBorderColor: =RGBA(0, 0, 0, 0) + PressedColor: =RGBA(16, 110, 190, 1) + PressedFill: =RGBA(0, 0, 0, 0) + Width: =14 + - conGalRect: + Control: Rectangle@2.3.0 + Properties: + BorderColor: =RGBA(0, 0, 0, 0) + BorderStyle: =BorderStyle.None + BorderThickness: =2 + DisabledFill: =RGBA(161, 159, 157, 1) + Fill: =RGBA(54, 176, 75, 1) + FillPortions: =1 + FocusedBorderThickness: =4 + Height: =10 + HoverFill: =RGBA(0, 120, 212, 1) + LayoutMaxHeight: =0 + LayoutMaxWidth: =0 + LayoutMinHeight: =16 + LayoutMinWidth: =16 + PressedFill: =RGBA(0, 120, 212, 1) + Width: =5 + - conGalContent: + Control: GroupContainer@1.3.0 + Variant: AutoLayout + Properties: + DropShadow: =DropShadow.None + LayoutAlignItems: =LayoutAlignItems.Center + LayoutDirection: =LayoutDirection.Vertical + LayoutMaxHeight: =0 + LayoutMaxWidth: =0 + LayoutMinHeight: =16 + LayoutMinWidth: =16 + PaddingBottom: =8 + PaddingLeft: =15 + PaddingRight: =8 + PaddingTop: =8 + Children: + - conGalTimelineHeader: + Control: GroupContainer@1.3.0 + Variant: AutoLayout + Properties: + DropShadow: =DropShadow.None + LayoutAlignItems: =LayoutAlignItems.Center + LayoutDirection: =LayoutDirection.Horizontal + LayoutMaxHeight: =0 + LayoutMaxWidth: =0 + LayoutMinHeight: =16 + LayoutMinWidth: =16 + Children: + - conGalTimelineTitle: + Control: Label@2.5.1 + Properties: + AlignInContainer: =AlignInContainer.Start + BorderColor: =RGBA(0, 0, 0, 1) + Color: =RGBA(39, 113, 194, 1) + DisabledColor: =RGBA(161, 159, 157, 1) + FillPortions: =1 + Font: =Font.'Segoe UI' + FontWeight: =FontWeight.Semibold + Height: =27 + PaddingBottom: =0 + PaddingLeft: =0 + PaddingRight: =0 + PaddingTop: =0 + Size: =12 + Text: =ThisItem.Name + VerticalAlign: =VerticalAlign.Top + Width: =295 + X: =50 + Y: =47 + - conGalTimelineDate: + Control: Label@2.5.1 + Properties: + AlignInContainer: =AlignInContainer.Start + BorderColor: =RGBA(0, 0, 0, 1) + Color: =RGBA(50, 49, 48, 1) + DisabledColor: =RGBA(161, 159, 157, 1) + Font: =Font.'Segoe UI' + Height: =26 + PaddingBottom: =0 + PaddingLeft: =12 + PaddingRight: =0 + PaddingTop: =0 + Size: =10 + Text: =ThisItem.Date + VerticalAlign: =VerticalAlign.Top + Width: =117 + X: =436 + Y: =24 + - htmGalTimelineContent: + Control: HtmlViewer@2.1.0 + Properties: + AlignInContainer: =AlignInContainer.Stretch + DisabledBorderColor: =RGBA(161, 159, 157, 1) + Font: =Font.'Segoe UI' + HtmlText: =ThisItem.Details + LayoutMaxHeight: =0 + LayoutMaxWidth: =0 + LayoutMinHeight: =16 + LayoutMinWidth: =16 + PaddingBottom: =0 + PaddingLeft: =0 + PaddingRight: =0 + PaddingTop: =0 + Size: =10 From 6bd5a85805e274394078ec8b40d7e7d35d342456 Mon Sep 17 00:00:00 2001 From: Summit Bajracharya <109615108+summitbaj@users.noreply.github.com> Date: Tue, 25 Nov 2025 10:20:31 -0800 Subject: [PATCH 2/8] Update README.md --- power-apps/activity-feed/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/power-apps/activity-feed/README.md b/power-apps/activity-feed/README.md index 0ee99be..b177ce4 100644 --- a/power-apps/activity-feed/README.md +++ b/power-apps/activity-feed/README.md @@ -4,7 +4,7 @@ Displays a real-time feed of activities such as posts, comments, status updates. -!\[Upload File](./assets/activityfeed.gif) +!\[Upload File](./assets/activityfeed.jpg) From bada4c249409b639b7052012548c2c5f17e9ff53 Mon Sep 17 00:00:00 2001 From: Summit Bajracharya <109615108+summitbaj@users.noreply.github.com> Date: Tue, 25 Nov 2025 10:23:57 -0800 Subject: [PATCH 3/8] Update README.md --- power-apps/activity-feed/README.md | 834 ++++++++++------------------- 1 file changed, 281 insertions(+), 553 deletions(-) diff --git a/power-apps/activity-feed/README.md b/power-apps/activity-feed/README.md index b177ce4..3d04fec 100644 --- a/power-apps/activity-feed/README.md +++ b/power-apps/activity-feed/README.md @@ -1,14 +1,14 @@ -\# Upload File +# Upload File Displays a real-time feed of activities such as posts, comments, status updates. Great for collaboration and keeping users informed. -!\[Upload File](./assets/activityfeed.jpg) +![Upload File](./assets/activityfeed.jpg) -\## Authors +## Authors @@ -16,577 +16,305 @@ Snippet|Author --------|--------- -Summit Bajracharya | \[GitHub](https://github.com/summitbaj) (\[@summitbajracharya](https://www.linkedin.com/in/summitbajracharya) ) +Summit Bajracharya | [GitHub](https://github.com/summitbaj) ([@summitbajracharya](https://www.linkedin.com/in/summitbajracharya) ) -\## Minimal path to awesome +## Minimal path to awesome -1\. Open your canvas app in \*\*Power Apps\*\* +1. Open your canvas app in **Power Apps** +1. Copy the contents of the **[YAML-file](./source/activityfeed.yaml)** +1. Click on the three dots of the screen where you want to add the snippet and select "Paste code" -2\. Copy the contents of the \*\*\[YAML-file](./source/activityfeed.yaml)\*\* -3\. Click on the three dots of the screen where you want to add the snippet and select "Paste code" - - -\## Code +## Code ``` YAML -\- conTimelineMain: - -  Control: GroupContainer@1.3.0 - -  Variant: AutoLayout - -  Properties: - -  Fill: =RGBA(255, 255, 255, 1) - -  Height: =353 - -  LayoutAlignItems: =LayoutAlignItems.Center - -  LayoutDirection: =LayoutDirection.Vertical - -  PaddingBottom: =8 - -  PaddingLeft: =8 - -  PaddingRight: =8 - -  PaddingTop: =8 - -  X: =60 - -  Y: =60 - -  Children: - -  - conTimelineHeader: - -  Control: GroupContainer@1.3.0 - -  Variant: AutoLayout - -  Properties: - -  DropShadow: =DropShadow.None - -  FillPortions: =0 - -  Height: =30 - -  LayoutAlignItems: =LayoutAlignItems.Center - -  LayoutDirection: =LayoutDirection.Horizontal - -  LayoutMaxHeight: =0 - -  LayoutMaxWidth: =0 - -  LayoutMinHeight: =16 - -  LayoutMinWidth: =16 - -  Children: - -  - Label2: - -  Control: Label@2.5.1 - -  Properties: - -  AlignInContainer: =AlignInContainer.Start - -  BorderColor: =RGBA(0, 0, 0, 0) - -  BorderStyle: =BorderStyle.None - -  BorderThickness: =2 - -  Color: =RGBA(50, 49, 48, 1) - -  DisabledBorderColor: =RGBA(0, 0, 0, 0) - -  DisabledColor: =RGBA(161, 159, 157, 1) - -  FocusedBorderThickness: =4 - -  Font: =Font.'Segoe UI' - -  Height: =30 - -  LayoutMaxHeight: =0 - -  LayoutMaxWidth: =0 - -  LayoutMinHeight: =16 - -  LayoutMinWidth: =16 - -  Text: ="Activity" - -  Width: =70 - -  - Rectangle2\_1: - -  Control: Rectangle@2.3.0 - -  Properties: - -  BorderColor: =RGBA(0, 0, 0, 0) - -  BorderStyle: =BorderStyle.None - -  BorderThickness: =2 - -  DisabledFill: =RGBA(161, 159, 157, 1) - -  Fill: =RGBA(240, 240, 240, 1) - -  FillPortions: =1 - -  FocusedBorderThickness: =4 - -  Height: =2 - -  HoverFill: =RGBA(0, 120, 212, 1) - -  LayoutMaxHeight: =0 - -  LayoutMaxWidth: =0 - -  LayoutMinHeight: =16 - -  LayoutMinWidth: =5 - -  PressedFill: =RGBA(0, 120, 212, 1) - -  Width: =5 - -  - galTimeline: - -  Control: Gallery@2.15.0 - -  Variant: BrowseLayout\_Vertical\_ThreeTextVariant\_ver5.0 - -  Properties: - -  BorderColor: =RGBA(245, 245, 245, 1) - -  Items: =Sort(colActivity,Date,SortOrder.Descending) - -  TemplateSize: =80 - -  X: =40 - -  Y: =40 - -  Children: - -  - conGalContainer: - -  Control: GroupContainer@1.3.0 - -  Variant: AutoLayout - -  Properties: - -  DropShadow: =DropShadow.None - -  Height: =80 - -  LayoutAlignItems: =LayoutAlignItems.Center - -  LayoutDirection: =LayoutDirection.Horizontal - -  Width: =Parent.Width - -  Children: - -  - conGalNextArrow: - -  Control: Classic/Icon@2.5.0 - -  Properties: - -  AccessibleLabel: =Self.Tooltip - -  AlignInContainer: =AlignInContainer.Start - -  BorderColor: =RGBA(0, 0, 0, 0) - -  Color: =RGBA(166, 166, 166, 1) - -  DisabledBorderColor: =RGBA(245, 245, 245, 1) - -  DisabledColor: =RGBA(225, 223, 221, 1) - -  DisabledFill: =RGBA(0, 0, 0, 0) - -  FocusedBorderThickness: =4 - -  Height: =30 - -  HoverBorderColor: =RGBA(0, 0, 0, 0) - -  HoverColor: =RGBA(16, 110, 190, 1) - -  HoverFill: =RGBA(0, 0, 0, 0) - -  Icon: =Icon.ChevronRight - -  PaddingBottom: =5 - -  PaddingLeft: =5 - -  PaddingRight: =5 - -  PaddingTop: =5 - -  PressedBorderColor: =RGBA(0, 0, 0, 0) - -  PressedColor: =RGBA(16, 110, 190, 1) - -  PressedFill: =RGBA(0, 0, 0, 0) - -  Tooltip: ="View item details" - -  Width: =30 - -  Y: =33 - -  - conGalSeperator: - -  Control: GroupContainer@1.3.0 - -  Variant: AutoLayout - -  Properties: - -  DropShadow: =DropShadow.None - -  FillPortions: =0 - -  LayoutAlignItems: =LayoutAlignItems.Center - -  LayoutDirection: =LayoutDirection.Vertical - -  LayoutMaxHeight: =0 - -  LayoutMaxWidth: =0 - -  LayoutMinHeight: =16 - -  LayoutMinWidth: =16 - -  Width: =30 - -  Children: - -  - conGalIcon: - -  Control: GroupContainer@1.3.0 - -  Variant: AutoLayout - -  Properties: - -  AlignInContainer: =AlignInContainer.Start - -  Fill: =RGBA(54, 176, 75, 1) - -  FillPortions: =0 - -  Height: =30 - -  LayoutAlignItems: =LayoutAlignItems.Center - -  LayoutDirection: =LayoutDirection.Vertical - -  LayoutMaxHeight: =0 - -  LayoutMaxWidth: =0 - -  LayoutMinHeight: =16 - -  LayoutMinWidth: =16 - -  PaddingBottom: =8 - -  PaddingLeft: =8 - -  PaddingRight: =8 - -  PaddingTop: =8 - -  Width: =30 - -  Children: - -  - Icon1: - -  Control: Classic/Icon@2.5.0 - -  Properties: - -  BorderColor: =RGBA(0, 0, 0, 0) - -  Color: =RGBA(255, 255, 255, 1) - -  DisabledBorderColor: =RGBA(245, 245, 245, 1) - -  DisabledColor: =RGBA(225, 223, 221, 1) - -  DisabledFill: =RGBA(0, 0, 0, 0) - -  FocusedBorderThickness: =4 - -  Height: =14 - -  HoverBorderColor: =RGBA(0, 0, 0, 0) - -  HoverColor: =RGBA(16, 110, 190, 1) - -  HoverFill: =RGBA(0, 0, 0, 0) - -  Icon: =Icon.CalendarBlank - -  LayoutMaxHeight: =0 - -  LayoutMaxWidth: =0 - -  LayoutMinHeight: =16 - -  LayoutMinWidth: =16 - -  PressedBorderColor: =RGBA(0, 0, 0, 0) - -  PressedColor: =RGBA(16, 110, 190, 1) - -  PressedFill: =RGBA(0, 0, 0, 0) - -  Width: =14 - -  - conGalRect: - -  Control: Rectangle@2.3.0 - -  Properties: - -  BorderColor: =RGBA(0, 0, 0, 0) - -  BorderStyle: =BorderStyle.None - -  BorderThickness: =2 - -  DisabledFill: =RGBA(161, 159, 157, 1) - -  Fill: =RGBA(54, 176, 75, 1) - -  FillPortions: =1 - -  FocusedBorderThickness: =4 - -  Height: =10 - -  HoverFill: =RGBA(0, 120, 212, 1) - -  LayoutMaxHeight: =0 - -  LayoutMaxWidth: =0 - -  LayoutMinHeight: =16 - -  LayoutMinWidth: =16 - -  PressedFill: =RGBA(0, 120, 212, 1) - -  Width: =5 - -  - conGalContent: - -  Control: GroupContainer@1.3.0 - -  Variant: AutoLayout - -  Properties: - -  DropShadow: =DropShadow.None - -  LayoutAlignItems: =LayoutAlignItems.Center - -  LayoutDirection: =LayoutDirection.Vertical - -  LayoutMaxHeight: =0 - -  LayoutMaxWidth: =0 - -  LayoutMinHeight: =16 - -  LayoutMinWidth: =16 - -  PaddingBottom: =8 - -  PaddingLeft: =15 - -  PaddingRight: =8 - -  PaddingTop: =8 - -  Children: - -  - conGalTimelineHeader: - -  Control: GroupContainer@1.3.0 - -  Variant: AutoLayout - -  Properties: - -  DropShadow: =DropShadow.None - -  LayoutAlignItems: =LayoutAlignItems.Center - -  LayoutDirection: =LayoutDirection.Horizontal - -  LayoutMaxHeight: =0 - -  LayoutMaxWidth: =0 - -  LayoutMinHeight: =16 - -  LayoutMinWidth: =16 - -  Children: - -  - conGalTimelineTitle: - -  Control: Label@2.5.1 - -  Properties: - -  AlignInContainer: =AlignInContainer.Start - -  BorderColor: =RGBA(0, 0, 0, 1) - -  Color: =RGBA(39, 113, 194, 1) - -  DisabledColor: =RGBA(161, 159, 157, 1) - -  FillPortions: =1 - -  Font: =Font.'Segoe UI' - -  FontWeight: =FontWeight.Semibold - -  Height: =27 - -  PaddingBottom: =0 - -  PaddingLeft: =0 - -  PaddingRight: =0 - -  PaddingTop: =0 - -  Size: =12 - -  Text: =ThisItem.Name - -  VerticalAlign: =VerticalAlign.Top - -  Width: =295 - -  X: =50 - -  Y: =47 - -  - conGalTimelineDate: - -  Control: Label@2.5.1 - -  Properties: - -  AlignInContainer: =AlignInContainer.Start - -  BorderColor: =RGBA(0, 0, 0, 1) - -  Color: =RGBA(50, 49, 48, 1) - -  DisabledColor: =RGBA(161, 159, 157, 1) - -  Font: =Font.'Segoe UI' - -  Height: =26 - -  PaddingBottom: =0 - -  PaddingLeft: =12 - -  PaddingRight: =0 - -  PaddingTop: =0 - -  Size: =10 - -  Text: =ThisItem.Date - -  VerticalAlign: =VerticalAlign.Top - -  Width: =117 - -  X: =436 - -  Y: =24 - -  - htmGalTimelineContent: - -  Control: HtmlViewer@2.1.0 - -  Properties: - -  AlignInContainer: =AlignInContainer.Stretch - -  DisabledBorderColor: =RGBA(161, 159, 157, 1) - -  Font: =Font.'Segoe UI' - -  HtmlText: =ThisItem.Details - -  LayoutMaxHeight: =0 - -  LayoutMaxWidth: =0 - -  LayoutMinHeight: =16 - -  LayoutMinWidth: =16 - -  PaddingBottom: =0 - -  PaddingLeft: =0 - -  PaddingRight: =0 - -  PaddingTop: =0 - -  Size: =10 +- conTimelineMain: + Control: GroupContainer@1.3.0 + Variant: AutoLayout + Properties: + Fill: =RGBA(255, 255, 255, 1) + Height: =353 + LayoutAlignItems: =LayoutAlignItems.Center + LayoutDirection: =LayoutDirection.Vertical + PaddingBottom: =8 + PaddingLeft: =8 + PaddingRight: =8 + PaddingTop: =8 + X: =60 + Y: =60 + Children: + - conTimelineHeader: + Control: GroupContainer@1.3.0 + Variant: AutoLayout + Properties: + DropShadow: =DropShadow.None + FillPortions: =0 + Height: =30 + LayoutAlignItems: =LayoutAlignItems.Center + LayoutDirection: =LayoutDirection.Horizontal + LayoutMaxHeight: =0 + LayoutMaxWidth: =0 + LayoutMinHeight: =16 + LayoutMinWidth: =16 + Children: + - Label2: + Control: Label@2.5.1 + Properties: + AlignInContainer: =AlignInContainer.Start + BorderColor: =RGBA(0, 0, 0, 0) + BorderStyle: =BorderStyle.None + BorderThickness: =2 + Color: =RGBA(50, 49, 48, 1) + DisabledBorderColor: =RGBA(0, 0, 0, 0) + DisabledColor: =RGBA(161, 159, 157, 1) + FocusedBorderThickness: =4 + Font: =Font.'Segoe UI' + Height: =30 + LayoutMaxHeight: =0 + LayoutMaxWidth: =0 + LayoutMinHeight: =16 + LayoutMinWidth: =16 + Text: ="Activity" + Width: =70 + - Rectangle2_1: + Control: Rectangle@2.3.0 + Properties: + BorderColor: =RGBA(0, 0, 0, 0) + BorderStyle: =BorderStyle.None + BorderThickness: =2 + DisabledFill: =RGBA(161, 159, 157, 1) + Fill: =RGBA(240, 240, 240, 1) + FillPortions: =1 + FocusedBorderThickness: =4 + Height: =2 + HoverFill: =RGBA(0, 120, 212, 1) + LayoutMaxHeight: =0 + LayoutMaxWidth: =0 + LayoutMinHeight: =16 + LayoutMinWidth: =5 + PressedFill: =RGBA(0, 120, 212, 1) + Width: =5 + - galTimeline: + Control: Gallery@2.15.0 + Variant: BrowseLayout_Vertical_ThreeTextVariant_ver5.0 + Properties: + BorderColor: =RGBA(245, 245, 245, 1) + Items: =Sort(colActivity,Date,SortOrder.Descending) + TemplateSize: =80 + X: =40 + Y: =40 + Children: + - conGalContainer: + Control: GroupContainer@1.3.0 + Variant: AutoLayout + Properties: + DropShadow: =DropShadow.None + Height: =80 + LayoutAlignItems: =LayoutAlignItems.Center + LayoutDirection: =LayoutDirection.Horizontal + Width: =Parent.Width + Children: + - conGalNextArrow: + Control: Classic/Icon@2.5.0 + Properties: + AccessibleLabel: =Self.Tooltip + AlignInContainer: =AlignInContainer.Start + BorderColor: =RGBA(0, 0, 0, 0) + Color: =RGBA(166, 166, 166, 1) + DisabledBorderColor: =RGBA(245, 245, 245, 1) + DisabledColor: =RGBA(225, 223, 221, 1) + DisabledFill: =RGBA(0, 0, 0, 0) + FocusedBorderThickness: =4 + Height: =30 + HoverBorderColor: =RGBA(0, 0, 0, 0) + HoverColor: =RGBA(16, 110, 190, 1) + HoverFill: =RGBA(0, 0, 0, 0) + Icon: =Icon.ChevronRight + PaddingBottom: =5 + PaddingLeft: =5 + PaddingRight: =5 + PaddingTop: =5 + PressedBorderColor: =RGBA(0, 0, 0, 0) + PressedColor: =RGBA(16, 110, 190, 1) + PressedFill: =RGBA(0, 0, 0, 0) + Tooltip: ="View item details" + Width: =30 + Y: =33 + - conGalSeperator: + Control: GroupContainer@1.3.0 + Variant: AutoLayout + Properties: + DropShadow: =DropShadow.None + FillPortions: =0 + LayoutAlignItems: =LayoutAlignItems.Center + LayoutDirection: =LayoutDirection.Vertical + LayoutMaxHeight: =0 + LayoutMaxWidth: =0 + LayoutMinHeight: =16 + LayoutMinWidth: =16 + Width: =30 + Children: + - conGalIcon: + Control: GroupContainer@1.3.0 + Variant: AutoLayout + Properties: + AlignInContainer: =AlignInContainer.Start + Fill: =RGBA(54, 176, 75, 1) + FillPortions: =0 + Height: =30 + LayoutAlignItems: =LayoutAlignItems.Center + LayoutDirection: =LayoutDirection.Vertical + LayoutMaxHeight: =0 + LayoutMaxWidth: =0 + LayoutMinHeight: =16 + LayoutMinWidth: =16 + PaddingBottom: =8 + PaddingLeft: =8 + PaddingRight: =8 + PaddingTop: =8 + Width: =30 + Children: + - Icon1: + Control: Classic/Icon@2.5.0 + Properties: + BorderColor: =RGBA(0, 0, 0, 0) + Color: =RGBA(255, 255, 255, 1) + DisabledBorderColor: =RGBA(245, 245, 245, 1) + DisabledColor: =RGBA(225, 223, 221, 1) + DisabledFill: =RGBA(0, 0, 0, 0) + FocusedBorderThickness: =4 + Height: =14 + HoverBorderColor: =RGBA(0, 0, 0, 0) + HoverColor: =RGBA(16, 110, 190, 1) + HoverFill: =RGBA(0, 0, 0, 0) + Icon: =Icon.CalendarBlank + LayoutMaxHeight: =0 + LayoutMaxWidth: =0 + LayoutMinHeight: =16 + LayoutMinWidth: =16 + PressedBorderColor: =RGBA(0, 0, 0, 0) + PressedColor: =RGBA(16, 110, 190, 1) + PressedFill: =RGBA(0, 0, 0, 0) + Width: =14 + - conGalRect: + Control: Rectangle@2.3.0 + Properties: + BorderColor: =RGBA(0, 0, 0, 0) + BorderStyle: =BorderStyle.None + BorderThickness: =2 + DisabledFill: =RGBA(161, 159, 157, 1) + Fill: =RGBA(54, 176, 75, 1) + FillPortions: =1 + FocusedBorderThickness: =4 + Height: =10 + HoverFill: =RGBA(0, 120, 212, 1) + LayoutMaxHeight: =0 + LayoutMaxWidth: =0 + LayoutMinHeight: =16 + LayoutMinWidth: =16 + PressedFill: =RGBA(0, 120, 212, 1) + Width: =5 + - conGalContent: + Control: GroupContainer@1.3.0 + Variant: AutoLayout + Properties: + DropShadow: =DropShadow.None + LayoutAlignItems: =LayoutAlignItems.Center + LayoutDirection: =LayoutDirection.Vertical + LayoutMaxHeight: =0 + LayoutMaxWidth: =0 + LayoutMinHeight: =16 + LayoutMinWidth: =16 + PaddingBottom: =8 + PaddingLeft: =15 + PaddingRight: =8 + PaddingTop: =8 + Children: + - conGalTimelineHeader: + Control: GroupContainer@1.3.0 + Variant: AutoLayout + Properties: + DropShadow: =DropShadow.None + LayoutAlignItems: =LayoutAlignItems.Center + LayoutDirection: =LayoutDirection.Horizontal + LayoutMaxHeight: =0 + LayoutMaxWidth: =0 + LayoutMinHeight: =16 + LayoutMinWidth: =16 + Children: + - conGalTimelineTitle: + Control: Label@2.5.1 + Properties: + AlignInContainer: =AlignInContainer.Start + BorderColor: =RGBA(0, 0, 0, 1) + Color: =RGBA(39, 113, 194, 1) + DisabledColor: =RGBA(161, 159, 157, 1) + FillPortions: =1 + Font: =Font.'Segoe UI' + FontWeight: =FontWeight.Semibold + Height: =27 + PaddingBottom: =0 + PaddingLeft: =0 + PaddingRight: =0 + PaddingTop: =0 + Size: =12 + Text: =ThisItem.Name + VerticalAlign: =VerticalAlign.Top + Width: =295 + X: =50 + Y: =47 + - conGalTimelineDate: + Control: Label@2.5.1 + Properties: + AlignInContainer: =AlignInContainer.Start + BorderColor: =RGBA(0, 0, 0, 1) + Color: =RGBA(50, 49, 48, 1) + DisabledColor: =RGBA(161, 159, 157, 1) + Font: =Font.'Segoe UI' + Height: =26 + PaddingBottom: =0 + PaddingLeft: =12 + PaddingRight: =0 + PaddingTop: =0 + Size: =10 + Text: =ThisItem.Date + VerticalAlign: =VerticalAlign.Top + Width: =117 + X: =436 + Y: =24 + - htmGalTimelineContent: + Control: HtmlViewer@2.1.0 + Properties: + AlignInContainer: =AlignInContainer.Stretch + DisabledBorderColor: =RGBA(161, 159, 157, 1) + Font: =Font.'Segoe UI' + HtmlText: =ThisItem.Details + LayoutMaxHeight: =0 + LayoutMaxWidth: =0 + LayoutMinHeight: =16 + LayoutMinWidth: =16 + PaddingBottom: =0 + PaddingLeft: =0 + PaddingRight: =0 + PaddingTop: =0 + Size: =10 ``` - -\## Disclaimer +## 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.\*\* +**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.** From e1fe803667b6ff02cd60035279925523aaec8a61 Mon Sep 17 00:00:00 2001 From: Summit Bajracharya <109615108+summitbaj@users.noreply.github.com> Date: Tue, 25 Nov 2025 10:28:23 -0800 Subject: [PATCH 4/8] Update sample.json --- power-apps/activity-feed/assets/sample.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/power-apps/activity-feed/assets/sample.json b/power-apps/activity-feed/assets/sample.json index f4693ec..3ae8dea 100644 --- a/power-apps/activity-feed/assets/sample.json +++ b/power-apps/activity-feed/assets/sample.json @@ -42,7 +42,7 @@ { "type": "image", "order": 100, - "url": "https://raw.githubusercontent.com/pnp/powerplatform-snippets/main/power-apps/activity-feed/assets/activityfeed.jpg", + "url": "activityfeed.jpg", "alt": "Activity Feed Preview" } ], From ee2d345848b2a26fe4df6dab448b6c958db2ca2c Mon Sep 17 00:00:00 2001 From: Summit Bajracharya <109615108+summitbaj@users.noreply.github.com> Date: Tue, 25 Nov 2025 10:29:56 -0800 Subject: [PATCH 5/8] Update sample.json --- power-apps/activity-feed/assets/sample.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/power-apps/activity-feed/assets/sample.json b/power-apps/activity-feed/assets/sample.json index 3ae8dea..b504760 100644 --- a/power-apps/activity-feed/assets/sample.json +++ b/power-apps/activity-feed/assets/sample.json @@ -42,7 +42,7 @@ { "type": "image", "order": 100, - "url": "activityfeed.jpg", + "url": "https://raw.githubusercontent.com/summitbaj/powerplatform-snippets/activity-feed/power-apps/activity-feed/assets/activityfeed.jpg", "alt": "Activity Feed Preview" } ], From 9a6c990c94fc355b4be894d2d66963a352f5e4d7 Mon Sep 17 00:00:00 2001 From: Summit Bajracharya <109615108+summitbaj@users.noreply.github.com> Date: Sat, 29 Nov 2025 18:48:26 -0800 Subject: [PATCH 6/8] Update README.md This update adds a sample colActivity collection to the README so users can easily test the snippet, and expands the usage instructions to clarify how to paste and work with the YAML code. The documentation has been refined for clarity and completeness based on the PR feedback. --- power-apps/activity-feed/README.md | 58 ++++++++++++++++++++++++------ 1 file changed, 48 insertions(+), 10 deletions(-) diff --git a/power-apps/activity-feed/README.md b/power-apps/activity-feed/README.md index 3d04fec..5af2d99 100644 --- a/power-apps/activity-feed/README.md +++ b/power-apps/activity-feed/README.md @@ -1,21 +1,26 @@ -# Upload File +# Activity Feed -Displays a real-time feed of activities such as posts, comments, status updates. Great for collaboration and keeping users informed. +A Activity feed UI that displays a real-time style activity feed which is perfect for showing updates such as appointments, tasks, or status changes. +Great for collaboration scenarios and keeping users informed. -![Upload File](./assets/activityfeed.jpg) +![Activity Feed](./assets/activityfeed.jpg) +## ✨ Features +- Clean, vertical timeline layout +- Supports **HTML** in descriptions +- Automatically sorts items by date (newest first) +- Easy to import with a simple YAML snippet +- Works with collections, Dataverse, or API data sources ## Authors -Snippet|Author - +Author|Socials --------|--------- - Summit Bajracharya | [GitHub](https://github.com/summitbaj) ([@summitbajracharya](https://www.linkedin.com/in/summitbajracharya) ) @@ -24,16 +29,49 @@ Summit Bajracharya | [GitHub](https://github.com/summitbaj) ([@summitbajracharya -1. Open your canvas app in **Power Apps** -1. Copy the contents of the **[YAML-file](./source/activityfeed.yaml)** -1. Click on the three dots of the screen where you want to add the snippet and select "Paste code" +Follow these steps to start using the Activity Feed snippet: +1. Open your **Canvas App** in Power Apps. +2. Copy the contents of the **[activityfeed.yaml](./source/activityfeed.yaml)** file. +3. Select the screen where you want to insert the control, click the **three dots (…)**, and choose **Paste code**. +4. Add sample data (see below) or connect your own source. +5. Done! -## Code +## Preparation +To help you test the Activity Feed quickly, add this sample collection to **App OnStart** or any button’s **OnSelect**: +``` +ClearCollect( + colActivity, + { + Name: "New Product Presentation", + Date: DateValue("12/25/2025"), + Details: "You have an upcoming task" + },{ + Name: "Finish the presentation", + Date: DateValue("11/25/2025"), + Details: "You have an upcoming task with John Doe" + },{ + Name: "New Product Presentation", + Date: DateValue("11/05/2025"), + Details: "You have an upcoming appointment with John Doe" + },{ + Name: "Invite Acme to the next month", + Date: DateValue("9/25/2025"), + Details: "You have an upcoming task" + } +) +``` +The gallery in the YAML snippet uses: +``` +Items = Sort(colActivity, Date, SortOrder.Descending) +``` +Replace **colActivity** with any source you prefer. +## YAML Snippet +Copy and paste the YAML code below into your canvas screen (right-click → Paste): ``` YAML - conTimelineMain: From a7bebb4fd3902ff6a51ebf1d638291a93ba02c6e Mon Sep 17 00:00:00 2001 From: Summit Bajracharya <109615108+summitbaj@users.noreply.github.com> Date: Sat, 29 Nov 2025 18:49:18 -0800 Subject: [PATCH 7/8] Delete power-apps/activity-feed/assets/sample.json Delete sample.json --- power-apps/activity-feed/assets/sample.json | 57 --------------------- 1 file changed, 57 deletions(-) delete mode 100644 power-apps/activity-feed/assets/sample.json diff --git a/power-apps/activity-feed/assets/sample.json b/power-apps/activity-feed/assets/sample.json deleted file mode 100644 index b504760..0000000 --- a/power-apps/activity-feed/assets/sample.json +++ /dev/null @@ -1,57 +0,0 @@ -[ - { - "$schema": "https://developer.microsoft.com/en-us/json-schemas/pnp/samples/v1.0/metadata-schema.json", - "name": "pnp-powerplatform-snippets-activity-feed", - "version": "1.0.0.0", - "source": "pnp", - "creationDateTime": "2025-11-25T00:00:00.000Z", - "updateDateTime": "2025-11-25T00:00:00.000Z", - "title": "Activity Feed", - "shortDescription": "This snippet provides a real-time activity feed to display user actions and updates in a collaborative environment.", - "longDescription": [ - "This snippet enables a dynamic activity feed that displays recent activities such as posts, comments, status updates, and attachments. It helps keep users informed and engaged with real-time collaboration." - ], - "url": "https://github.com/pnp/powerplatform-snippets/tree/main/power-apps/activity-feed/", - "products": [ - "Power Platform", - "Power Apps", - "powerplatform-snippets", - "power-apps-snippets" - ], - "tags": [ - "activity", - "feed", - "collaboration", - "real-time" - ], - "categories": [ - "User Interface", - "Collaboration" - ], - "metadata": [ - { - "key": "Product", - "value": "Power Apps" - }, - { - "key": "Type", - "value": "Snippet" - } - ], - "thumbnails": [ - { - "type": "image", - "order": 100, - "url": "https://raw.githubusercontent.com/summitbaj/powerplatform-snippets/activity-feed/power-apps/activity-feed/assets/activityfeed.jpg", - "alt": "Activity Feed Preview" - } - ], - "authors": [ - { - "gitHubAccount": "summitbaj", - "name": "Summit Bajracharya", - "pictureUrl": "https://github.com/summitbaj.png" - } - ] - } -] From 6e80961af1203ebd6f7370b1c0dda2c66915df99 Mon Sep 17 00:00:00 2001 From: Summit Bajracharya <109615108+summitbaj@users.noreply.github.com> Date: Sat, 29 Nov 2025 18:51:07 -0800 Subject: [PATCH 8/8] Update README.md Remove the emoji --- power-apps/activity-feed/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/power-apps/activity-feed/README.md b/power-apps/activity-feed/README.md index 5af2d99..bf4ff27 100644 --- a/power-apps/activity-feed/README.md +++ b/power-apps/activity-feed/README.md @@ -7,7 +7,7 @@ Great for collaboration scenarios and keeping users informed. ![Activity Feed](./assets/activityfeed.jpg) -## ✨ Features +## Features - Clean, vertical timeline layout - Supports **HTML** in descriptions