From 15bea4986c4569a5217c447eee89b21e0f7dba82 Mon Sep 17 00:00:00 2001 From: zachroberts8668 Date: Wed, 8 Jul 2020 22:07:51 -0400 Subject: [PATCH] Added Grid layout and adjusted compact layout --- samples/react-my-groups/README.md | 10 +- .../assets/React-MyGroups_Compact.png | Bin 0 -> 11832 bytes .../assets/React-MyGroups_Grid.png | Bin 0 -> 24819 bytes .../assets/React-MyGroups_Property.png | Bin 0 -> 7828 bytes samples/react-my-groups/assets/example.png | Bin 51967 -> 0 bytes .../reactMyGroups/ReactMyGroupsWebPart.ts | 31 +++- .../GridList/GridLayout.module.scss | 60 ++++++++ .../components/GridList/GridLayout.tsx | 89 ++++++++++++ .../components/GridList/GridLayout.types.ts | 28 ++++ .../components/GridList/index.ts | 2 + .../GroupList/GroupList.module.scss | 5 +- .../reactMyGroups/IReactMyGroupsProps.ts | 3 +- .../reactMyGroups/IReactMyGroupsState.ts | 1 + .../reactMyGroups/ReactMyGroups.module.scss | 137 +++++++++++++++++- .../reactMyGroups/ReactMyGroups.tsx | 78 ++++++---- 15 files changed, 402 insertions(+), 42 deletions(-) create mode 100644 samples/react-my-groups/assets/React-MyGroups_Compact.png create mode 100644 samples/react-my-groups/assets/React-MyGroups_Grid.png create mode 100644 samples/react-my-groups/assets/React-MyGroups_Property.png delete mode 100644 samples/react-my-groups/assets/example.png create mode 100644 samples/react-my-groups/src/webparts/reactMyGroups/components/GridList/GridLayout.module.scss create mode 100644 samples/react-my-groups/src/webparts/reactMyGroups/components/GridList/GridLayout.tsx create mode 100644 samples/react-my-groups/src/webparts/reactMyGroups/components/GridList/GridLayout.types.ts create mode 100644 samples/react-my-groups/src/webparts/reactMyGroups/components/GridList/index.ts diff --git a/samples/react-my-groups/README.md b/samples/react-my-groups/README.md index fd148f335..e8476a8af 100644 --- a/samples/react-my-groups/README.md +++ b/samples/react-my-groups/README.md @@ -19,7 +19,14 @@ extensions: Using Microsoft Graph, this webpart grabs the Office 365 groups the current user is a member of with links to the groups SharePoint site. -![Demo](./assets/example.png) +The webpart has been updated to include a grid like in addition to the compact layout as seen below: +![Grid Demo](./assets/React-MyGroups_Grid.png) + +Compact Layout: +![Compact Demo](./assets/React-MyGroups_Compact.png) + +You can change between the grid and compact layout through the settings in the property pane: +![Property Pane Demo](./assets/React-MyGroups_Property.png) ## Used SharePoint Framework Version @@ -42,6 +49,7 @@ Version|Date|Comments -------|----|-------- 1.0|September 13, 2019|Initial release 1.1|June 1, 2020| Updated to SPFX 1.10.0 +1.2|July 8, 2020| Added Grid Layout ## Disclaimer diff --git a/samples/react-my-groups/assets/React-MyGroups_Compact.png b/samples/react-my-groups/assets/React-MyGroups_Compact.png new file mode 100644 index 0000000000000000000000000000000000000000..44257935eaecf1671a734b205f6acb6c5ad3de33 GIT binary patch literal 11832 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 literal 0 HcmV?d00001 diff --git a/samples/react-my-groups/assets/React-MyGroups_Property.png b/samples/react-my-groups/assets/React-MyGroups_Property.png new file mode 100644 index 0000000000000000000000000000000000000000..75e1d584cf86e9f9f552451c6ec8584cae344a85 GIT binary patch literal 7828 zcmd^kc|6qX`}f$lkR+!hQYT857KAKAQ7KWD3|Y!Dmaz>ZG$w>PLJJ9DN+HbH#!SZ8 zlWfftGsBD-NtTSUFU{C~qrT@k=Xw2}@Avurah|`PKR&Oyx6gfD@9VnW*L~gdxo=}_ zDJi~38~^}Fozw|{CTOcG@&FqwL zytb!ItgN^^r{jE;kIcE2;H0>O{dhymx}#?(0#7R3(ck7yjDIXMK9i&I>KdK%a zrX1GNDW>Te-?7K!)Z15|hbGa}lR=Ke?v3I%O!SIG!;eCQ-Ab6R@%5`GSR8@gk;YAy zNhyL4AQg`ky7NI41i1I$A8pWRd9}4mRr;Gf(6Px}KbbotGpwbTK zwY&5F{j43Brc;CK?+7sO8|d3nIFNR${MBmMm^~C4dub&ZiITxIshz)Ld{Q-_6jJDB zmzLK5IUW|_f90-|4EV{L+WP38faj6OTellI&Fy621V)-xPV!|`wg_aF5!A5UBjFtd zEeAQ*;{0J)N)I%xmOXt!8l9&jj|(LA&&b%Iz));iMqCu+#bIy zbWd*R&~6%W93RQfn!NpLof^@dN08&JYn*`3J>bv|`>yaUd^k~_tq|(Y!q$cso@N#V zF-o55EHm{Tv75QL6g>a>6qMXv2Pu3qe@cN)h9#Wk-kceudyi!G+DD(2BeL(04{7W5 zNp@UsuR(D;>|69Ix%jSdO?2*a=s+e}pQYgXX0BIQJ*=`@V!3zzZLx~l_?vvhQAS5>D#?G#G9=C2g_)T+TkoE9}CujIIIn-n(G2{zUgSN@Er(W=w!ArV2t)wW$T+vkj_?i%? z^-LP!rdhRYdP?~2eBH2{(asT!;3sJk%L z0HI7BBR*5-n&d_2KcnuWv|leXv3A8X>tV4ut+DaC+8UuNtrDXKwY8mb_#pcUfmN^8 zWxfUEK88hlSSofsbO1HJ-6un7M|8fMUN6;6SAm!hX&fz!$NDa;87?rRl3JUT=E$SD z(K8FRSHlV!4Zr2$xK;W^6lbQJW3!70mX22J>ro@A>tzz^U5#PGeLIY&Rn}!1U~SHv zYWA|!9?a#nZiOBLH|ri*m=ZNJqUWP}QO=vpq>s-Q%H8yEnF|KZ&$eSmlP5kwwQ`gQ zJJ2gr=O9$V3S$ygnwxZ+;*!3Ud5El5rGSyA`^s;ZimzvPF&2J&w>IL>QNr|0;CD)$ z7DLaQSNfftTwY;jC(~z2p^u^(X)Qt!AGG7%)8JO>^h6xC4n91RS!x4uYpf@hM=E8@ zg_nRAy8M3EPBT$uT{`ei7m3svdv7(Gth)F;Iyu^TV-{aK+{j>GR2%QDVF^daVe@LTIh+e^y+io~Pr8aMplMyXwgsUfq?vWEnj9b%ol!GF6Gc zDv}%I-&fEZOhOaF>Or52O_XnQ*&idFRswTM$4eq-p)(E=vAfqEhCkhjjTfiYH4Fy&w(fX$^y&vE#J=T6R@Cl5ID{Zw-WTGtoD{*<4ZNlL6*tay#D!1BaYztNdcy?w zwJJDy)MS3ud1ItJP<$z6EIIchwLWljDxel2^STjwdk>>yLoiy8v3f+%n=q`dWqJqy3h9Fm1JX z>9$v6X)SfjOhj|E^Yxf|s|Nn?`S0P?FPM|b1M8m}V7cWHs0MfD!Vq?I`8t$|T4(?* zr({w}KLuSTq0!lvljUR`C>s@I-Jeq$0Hr)fe2-gM|1Q$K!W<$pL%DnsT)AQbb zsa?{o!Cy0`SCN<2e-I8oX!#@zX@;v&IM|l2u%Mm9ng-p{v05cpEeqW6$VYaX*(&Y) zmrfB|_D1k@i~$7gA%pc_?ynvPJL;B~ZiJ1yK-9h|_MDg&c1joIoM4TW#Ec94C^2ci zKB4Zi1G^>`c*un$+^8S?+l%sy*JQ&Yi3i(&hT7A0rSq}I38QkXn(#x7LG8?E=YFh+`}MOECN`I=qr=Rr+L{$zBUFJ@RX5(?@l;r47V(sg+@C zqj3;?!V&RM?X?Nv!UN=4O;H+Of8^`unzw?NoEAU}2v)dqL}R+vV*b)b8l>d%q?@CX zrX&EE?6MsL*uEPm0eB?y4>dH5z^r_&IsfB2T^k+_t8`G3{&emeC&OdMdJV}p0TYi7 zf~i>AoI~PFg?X3oiAIRf7l5z~=Eeljg2aESxLFXwak$MmX^Xw7OZc8ZF^18-8Sh~= z1X5mhF^%qu>lN(v%Vjix9I!{)AIsDry1nl*0(%vS?3;R(llfe9r-_ezUyO4z3*a7> zD2qXTIU-OlW`kg$v#e<>SP6o@eZeBP&bjvn1ZY-6c6}j>*%9MPqQkS>88Q$R%X#4ZYX$Ap)43fnFgjl< zczqm5;^*u!B{>xII&8miZz;j1@}orAp{5cTh(*w+)dEXbG-yl9S&A4kHxi0Lt&4$_ z<$sjoMxntU{zRdh>uB_c%Go}3JM6xToTJ}#Q{rC!`OO`T6t=;S4uJ)qB@s#P_!HXch^ai9o z1oKpgR+@|y688EIRM_@{HYW*+m=3+Yz84~j!@32ZG1TLoqkK&jM>kuw6_0C32tsBy z*rUy+jzM#){5o&T%eC%ZU!8~CjoKt}O1wnGXiOf}z&ivX&B9g@XsqnM>Np#Xl_9({ z%+2IpC$-tMF=kP`=Z#THtoKBcKbe}3WAPKyfp$+vL{~-f;BL#EpCi2HW(FTjS zd%N>DeNqOCfwr<3FRFQ$oVZ=4o{=INfTMi>WN!NpIZ{Ih9HBdNLS5CYCJ;8ry~J@$ zV~1BC&&p;@?g#7@xo?4~^ERj@1_U@tN1vNTLn13L@X}r47XJclfOT~`ZwjS4mwNhI z-d&v8nQREGGV!S@+LOzTfdC2E(ni@nBE|l>^SkwR#$NGg) z3`&k}u|Ea33!of3V)XKNJHEXF2eJ!wbbA(Bz05A^9`V_Td#UF4@b}%nJB6q7X66M0;mb}-qJTup;}@zX)p#Zt z4deruNAx+JCGp=e;|bxNYJfAmy#DVRPrXQ;#MJWV*Yub(BiN4ek$v+;?Oiu-jc(Ec zQEN-CPBSsW^~@k>(VE=QmzX5mjWX`kf?rUtOVZeF);z-Nt>rjqXB!cJKy^TvP4m2x zK@vt*?jAFK)WSl!5{1Yu}j$7of8ms z*Fg20IrSy+CEbA-0x~M+(mLk3oSmaXclaT=z~83v97s1l)kx3cOR?u(Oq-RJNS1iZ z{MjK%;>M$K0*=C7T8gwYV3#aZ4}U=oF|uhDm8+5TrF^$HV!P$;&aWlIV4j;cq64gv zWqa01IAqn%qaUw7;I$EcbQRg)kSvILo*y9zqFU$Dr?HEtwqIrf=?b@xxHxNd2hQrM z2t$-zF1%QHG;$Y9_B2#yg$fsS3QeP(!;(k?9?wO!At4 zVRwHJOl{evRexMx56rHOTJ5i3w1@Lc?O#QPYc=_*f5U6RaA^djVS&bF)uTpHjD|R@ z-rH|3(lWbHF#F%`?~dI)*g!$_X377-#a|2EcLLo;(2dSdx^CUCq8W!(PBVwbp&nLf zEvk4%$G06`A$$18o3iW5k&+m?o~2>e$3lb@Lzi7M5lt|H2t8(ETNAJ8og7bmc~oN2 zvNu(bKs6zUfFN8Jd85v`Eu|*VnWh4kkq4>=+~aC3&nFD*O9?mk-KAi*jPkXQRqh)< zW(YnTE)}b5*v`@?9-s9IqWW3o6Q9HDI&A{j<3qt_K=r=LuxmJq{3=~~c93HS!3Q1h z&z?JNRuK3_&1*MCL{{8w+ZDH40{6FLBxpoB^q>XlhPx;&a&T>Eu-0jtFfciGKbTMX zc-$_4%7MQ(s%|P`{D)#X2f0(#lQMv9X`bnxWLuCQDQ32r$d-LrCv?`fZ@bl>^yE{v z{J#+LKX4Vhh-3^9h-DB(;*enm)UC3y!kKKl7FxPaX5PRC!H5a(a` zB(P#S@X{Ym47YPMxGraZn6j!Mn;+=kTIsWhANq0-9J{tn4P0t_bDeU#{$7(e=RFo~ zb2yXC4k(Xal^Yewg8NU?j*vZksFABettZ27UoM5q)8-q|j6?61`pgFkrJ~@9G(EnE z=@{qs@FT(>+JfV-qGc&jk%s3C3rtN013tjwON`%_A#27`z$?{Ep|Xh6(J?(E)AuMt zjp9xSIC%5xZ{f2Mc_w#W?4IgtF4JD53elg;h7|O^7C|wwMk;x`F|p9xMntsHo#EYf zByLa=Br^8%lxp+WmNHe(wI+iw(nql>ht*;1w?TPv(5CS4Tsg0l-fI#s2C65>s%hRm z*iXjDubzxTsww=T zYcp7Nf1tlF_DaG<_jgpL-u7=BT$M$b-L(w%Q`VwJ6IFlZG~AlG^fBHEN?sHa6I9C^*m~d}8&j&djVwtV}`0MrPipSeCOxH72 zY=R)`1sn!qPYmQOFwd(oDbI!v*VZx z9_HYV=Ezl`|C;?<&_HOR@H;;Zm4dwFjF#4p`6b7R4`N_~jPWgo=<8&dLZ+}|tJf-L`^qaXAMugY5#Y?Tj&tK{C$wso38sDN!BT2?JE6i=wGgE?2gxk$zbddzcjN=M!x25 zd0wj**;BoR;-7Q<|I@hohcMF3AZS1Rw*wwGu`^#yJ%V~&BdG@H%b?qVid}Q=M%#j6Tjh>2PS({F6*fam^mnzEz zJomXR1Jw@)YjGAOoq zZ+{*CIEbVPTi_15#8lO~MlJeVzH6&{;C-Qp@O1QCtqa8&h!}4MyqHDGj`v4~vnk+m6)8UoGRXx!fPkUgaUsdKV-f=JJIy zT!M{&f5Z8%grqt5?i!uTK~mC^;mHcG+0GW2Q~ZJ`ahkW_X#F_>dd<@WijQGv* zqfyvpCuJ~O_mUDO@Fg?lWIqBe3fddnZL*D}1ZS&)qp3c7FvFyU5>>)M(P&GIh!|+* zl)>8ga=CikE=%PFq(*1ML;QgXxDbSFA=~eD$43DJCpNyd9zE?_!<4>Ko5x%h5vQ3d zrLUI+6?1=lc35rX8v}==i-Md-B~VM)&xnv73DBD(0bTH9zz;R1#3J%_n*^;Y;M(%_ zUV{hbEGgrc;X~Uh$zq|n>GROTSd%Jx4`#jD>XMsR(+FR6R~!@mOm)2WPOo6^Z9#$Sac TJF<9Rk^$$>TAx9ixySt%R)0xH literal 0 HcmV?d00001 diff --git a/samples/react-my-groups/assets/example.png b/samples/react-my-groups/assets/example.png deleted file mode 100644 index 5acf7e161ad1fcf5b4964d49a0c9f3a487280fb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51967 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 M?SCpebL0Mh0mhQG(EtDd diff --git a/samples/react-my-groups/src/webparts/reactMyGroups/ReactMyGroupsWebPart.ts b/samples/react-my-groups/src/webparts/reactMyGroups/ReactMyGroupsWebPart.ts index b686ed2d8..11310ef78 100644 --- a/samples/react-my-groups/src/webparts/reactMyGroups/ReactMyGroupsWebPart.ts +++ b/samples/react-my-groups/src/webparts/reactMyGroups/ReactMyGroupsWebPart.ts @@ -2,13 +2,14 @@ import * as React from 'react'; import * as ReactDom from 'react-dom'; import { Version } from '@microsoft/sp-core-library'; import { BaseClientSideWebPart } from "@microsoft/sp-webpart-base"; -import { IPropertyPaneConfiguration, PropertyPaneTextField } from "@microsoft/sp-property-pane"; +import { IPropertyPaneConfiguration, PropertyPaneTextField, PropertyPaneChoiceGroup } from "@microsoft/sp-property-pane"; import GroupService from '../../services/GroupService'; import * as strings from 'ReactMyGroupsWebPartStrings'; import { ReactMyGroups, IReactMyGroupsProps } from './components'; export interface IReactMyGroupsWebPartProps { - description: string; + title: string; + layout: string; } export default class ReactMyGroupsWebPart extends BaseClientSideWebPart { @@ -17,7 +18,8 @@ export default class ReactMyGroupsWebPart extends BaseClientSideWebPart = React.createElement( ReactMyGroups, { - description: this.properties.description + title: this.properties.title, + layout: this.properties.layout } ); @@ -39,6 +41,7 @@ export default class ReactMyGroupsWebPart extends BaseClientSideWebPart { + constructor(props: IGridLayoutProps) { + super(props); + this.state = { + isLoading: true + }; + } + private _columnCount: number; + private _columnWidth: number; + private _rowHeight: number; + private _isCompact: boolean; + + public render(): React.ReactElement { + return ( +
+ + + +
+ ); + } + + public componentDidMount = (): void => { + } + + private _getItemCountForPage = (itemIndex: number, surfaceRect: IRectangle): number => { + if (itemIndex === 0) { + this._isCompact = surfaceRect.width < COMPACT_THRESHOLD; + if (this._isCompact) { + this._columnCount = 1; + this._columnWidth = surfaceRect.width; + } else { + this._columnCount = Math.ceil(surfaceRect.width / (MAX_ROW_HEIGHT)); + this._columnWidth = Math.max(MIN_WIDTH, Math.floor(surfaceRect.width / this._columnCount) + Math.floor(PADDING / this._columnCount)); + this._rowHeight = this._columnWidth; + } + } + + return this._columnCount * ROWS_PER_PAGE; + } + + private _getPageHeight = (): number => { + return this._rowHeight * ROWS_PER_PAGE; + } + + private _onRenderCell = (item: any, index: number | undefined): JSX.Element => { + console.log(item.displayName); + const isCompact: boolean = this._isCompact; + const cellPadding: number = index % this._columnCount !== this._columnCount - 1 && !isCompact ? PADDING : 0; + const finalSize: ISize = { width: this._columnWidth, height: this._rowHeight }; + const cellWidth: number = isCompact ? this._columnWidth + PADDING : this._columnWidth - PADDING; + return ( +
+ {this.props.onRenderGridItem(item, finalSize, isCompact)} +
+ ); + } +} diff --git a/samples/react-my-groups/src/webparts/reactMyGroups/components/GridList/GridLayout.types.ts b/samples/react-my-groups/src/webparts/reactMyGroups/components/GridList/GridLayout.types.ts new file mode 100644 index 000000000..21b7f6a86 --- /dev/null +++ b/samples/react-my-groups/src/webparts/reactMyGroups/components/GridList/GridLayout.types.ts @@ -0,0 +1,28 @@ +import { ISize } from 'office-ui-fabric-react/lib/Utilities'; +import { IListProps } from 'office-ui-fabric-react/lib/List'; + +export interface IGridLayoutProps { + /** + * Accessible text for the grid layout + */ + ariaLabel?: string; + + /** + * The array of items to display + */ + items: any[]; + + /** + * In case you want to override the underlying list + */ + listProps?: Partial; + + /** + * The method to render each cell item + */ + onRenderGridItem: (item: any, finalSize: ISize, isCompact: boolean) => JSX.Element; +} + +export interface IGridLayoutState { + isLoading?: boolean; +} diff --git a/samples/react-my-groups/src/webparts/reactMyGroups/components/GridList/index.ts b/samples/react-my-groups/src/webparts/reactMyGroups/components/GridList/index.ts new file mode 100644 index 000000000..9874f894a --- /dev/null +++ b/samples/react-my-groups/src/webparts/reactMyGroups/components/GridList/index.ts @@ -0,0 +1,2 @@ +export * from './GridLayout.types'; +export * from './GridLayout'; \ No newline at end of file diff --git a/samples/react-my-groups/src/webparts/reactMyGroups/components/GroupList/GroupList.module.scss b/samples/react-my-groups/src/webparts/reactMyGroups/components/GroupList/GroupList.module.scss index 4d737db2f..ef0406510 100644 --- a/samples/react-my-groups/src/webparts/reactMyGroups/components/GroupList/GroupList.module.scss +++ b/samples/react-my-groups/src/webparts/reactMyGroups/components/GroupList/GroupList.module.scss @@ -1,12 +1,14 @@ @import "~@microsoft/sp-office-ui-fabric-core/dist/sass/SPFabricCore.scss"; :export { - padding: 20; + padding: 5; minWidth: 210; maxWidth: 320; rowsPerPage: 3; } + + .compactLayout { overflow: hidden; font-size: 0; @@ -44,6 +46,5 @@ :global(.ms-List-cell) { vertical-align: top; display: inline-block; - margin-bottom: 20px; } } diff --git a/samples/react-my-groups/src/webparts/reactMyGroups/components/reactMyGroups/IReactMyGroupsProps.ts b/samples/react-my-groups/src/webparts/reactMyGroups/components/reactMyGroups/IReactMyGroupsProps.ts index 54ff8ddce..57c456a2e 100644 --- a/samples/react-my-groups/src/webparts/reactMyGroups/components/reactMyGroups/IReactMyGroupsProps.ts +++ b/samples/react-my-groups/src/webparts/reactMyGroups/components/reactMyGroups/IReactMyGroupsProps.ts @@ -1,3 +1,4 @@ export interface IReactMyGroupsProps { - description: string; + title: string; + layout: string; } diff --git a/samples/react-my-groups/src/webparts/reactMyGroups/components/reactMyGroups/IReactMyGroupsState.ts b/samples/react-my-groups/src/webparts/reactMyGroups/components/reactMyGroups/IReactMyGroupsState.ts index c313871a1..f60e173b0 100644 --- a/samples/react-my-groups/src/webparts/reactMyGroups/components/reactMyGroups/IReactMyGroupsState.ts +++ b/samples/react-my-groups/src/webparts/reactMyGroups/components/reactMyGroups/IReactMyGroupsState.ts @@ -2,4 +2,5 @@ import * as MicrosoftGroup from '@microsoft/microsoft-graph-types'; export interface IReactMyGroupsState { groups: MicrosoftGroup.Group[]; + isLoading: boolean; } diff --git a/samples/react-my-groups/src/webparts/reactMyGroups/components/reactMyGroups/ReactMyGroups.module.scss b/samples/react-my-groups/src/webparts/reactMyGroups/components/reactMyGroups/ReactMyGroups.module.scss index 025a518d3..a9e5823d7 100644 --- a/samples/react-my-groups/src/webparts/reactMyGroups/components/reactMyGroups/ReactMyGroups.module.scss +++ b/samples/react-my-groups/src/webparts/reactMyGroups/components/reactMyGroups/ReactMyGroups.module.scss @@ -2,6 +2,131 @@ .reactMyGroups { + .compactContainer { + margin: 0px 5px 5px; + position: relative; + display: inline-block; + vertical-align: top; + } + + .compactA { + outline: 0; + text-decoration: none; + display: block; + margin-top: 4px; + width: 251.333px; + border: 1px solid transparent; + margin-bottom: 8px; + } + + .compactWrapper { + display: flex; + align-items: center; + position: relative; + } + + .compactBanner { + margin-right: 12px; + width: 32px; + height: 32px; + flex-shrink: 0; + } + + .compactDetails { + overflow: hidden; + display: flex; + flex-direction: column; + } + + .compactTitle { + font-size: 14px; + font-weight: 600; + margin: 6px 0; + text-overflow: ellipsis; + white-space: nowrap; + color: rgb(50,49,48); + display: block; + margin-block-start: 1em; + margin-block-end: 1em; + margin-inline-start: 0px; + margin-inline-end: 0px; + } + + .cardContainer{ + outline: transparent; + position: relative; + } + + .siteCard { + height: 200px; + max-width: 286px; + box-sizing: border-box; + margin-bottom: 20px; + outline: transparent; + position: relative; + background-color: rgb(255, 255, 255); + box-shadow: rgba(0, 0, 0, 0.133) 0px 1.6px 3.6px 0px, rgba(0, 0, 0, 0.11) 0px 0.3px 0.9px 0px; + border-width: 1px; + border-style: solid; + border-image: initial; + border-radius: 2px; + overflow: hidden; + border-color: rgb(237, 235, 233); + } + + .cardBanner { + position: relative; + height: 144px; + padding-top: 40px; + width: 100%; + } + + .cardTitle { + font-size: 16px; + margin-top: 28px; + font-weight: 600; + line-height: 20px; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + box-sizing: content-box; + max-height: 2.7em; + overflow: hidden; + text-align: left; + padding: 0 12px; + color: rgb(50, 49, 48); + } + + .topBanner { + position: absolute; + top: 0; + height: 40px; + width: 100%;; + } + + .bannerImg { + position: absolute; + top: 12px; + left: 12px; + height: 48px; + width: 48px; + box-sizing: border-box; + box-shadow: 0 0 4px 0 rgba(0,0,0,.2); + border-width: 1px; + border-style: solid; + border-image: initial; + border-color: rgb(255,255,255); + background-position: 50%; + background-repeat: no-repeat; + background-size: contain; + } + + .docTile { + background-color: transparent; + outline: transparent; + position: relative; + } + a { text-decoration: none; } @@ -28,8 +153,16 @@ } .title { - @include ms-font-xl; - @include ms-fontColor-white; + text-align: left; + color: rgb(50, 49, 48); + white-space: pre-wrap; + font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; + -webkit-font-smoothing: antialiased; + font-size: 20px; + font-weight: 600; + margin-right: 32px; + margin-bottom: 18px; + flex-grow: 1; } .subTitle { diff --git a/samples/react-my-groups/src/webparts/reactMyGroups/components/reactMyGroups/ReactMyGroups.tsx b/samples/react-my-groups/src/webparts/reactMyGroups/components/reactMyGroups/ReactMyGroups.tsx index 971d36b5f..e269edc85 100644 --- a/samples/react-my-groups/src/webparts/reactMyGroups/components/reactMyGroups/ReactMyGroups.tsx +++ b/samples/react-my-groups/src/webparts/reactMyGroups/components/reactMyGroups/ReactMyGroups.tsx @@ -6,7 +6,10 @@ import GroupService from '../../../../services/GroupService'; import { IReactMyGroupsState } from './IReactMyGroupsState'; import { GroupList } from '../GroupList'; import { IGroup } from '../../../../models'; -import { DocumentCard, DocumentCardType, DocumentCardDetails, DocumentCardTitle, IDocumentCardPreviewProps, ImageFit, DocumentCardPreview } from 'office-ui-fabric-react'; +import { Spinner, DocumentCard, DocumentCardType, DocumentCardDetails, DocumentCardTitle, IDocumentCardPreviewProps, ImageFit, DocumentCardPreview, IconFontSizes, ISize, isVirtualElement, DocumentCardLocation, DocumentCardActivity } from 'office-ui-fabric-react'; +import { GridLayout } from '../GridList'; + +const colors = ['#17717A','#4A69DB','#303952','#A4262C','#3A96DD','#CA5010','#8764B8','#498205','#69797E']; export class ReactMyGroups extends React.Component { @@ -14,7 +17,8 @@ export class ReactMyGroups extends React.Component { return (
-

My Office 365 Groups

- this._onRenderItem(item, index)}/> +
{this.props.title}
+ {this.state.isLoading ? + + : +
+ {this.props.layout == 'Compact' ? + this._onRenderItem(item, index)}/> + : this._onRenderGridItem(item, finalSize, isCompact)}/> + } +
+ }
); } @@ -34,7 +47,6 @@ export class ReactMyGroups extends React.Component { GroupService.getGroups().then(groups => { - // console.log(groups); this.setState({ groups: groups }); @@ -45,7 +57,6 @@ export class ReactMyGroups extends React.Component { groups.map(groupItem => ( GroupService.getGroupLinks(groupItem).then(groupurl => { - // console.log(groupurl.value); this.setState(prevState => ({ groups: prevState.groups.map(group => group.id === groupItem.id ? {...group, url: groupurl.value} : group) })); @@ -57,41 +68,46 @@ export class ReactMyGroups extends React.Component { groups.map(groupItem => ( GroupService.getGroupThumbnails(groupItem).then(grouptb => { - console.log(grouptb); + //set group color: + const itemColor = colors[Math.floor(Math.random() * colors.length)]; this.setState(prevState => ({ - groups: prevState.groups.map(group => group.id === groupItem.id ? {...group, thumbnail: grouptb} : group) + groups: prevState.groups.map(group => group.id === groupItem.id ? {...group, thumbnail: grouptb, color: itemColor} : group) })); }) )); + console.log('Set False'); + this.setState({ + isLoading: false + }); } private _onRenderItem = (item: any, index: number): JSX.Element => { - const previewProps: IDocumentCardPreviewProps = { - previewImages: [ - { - previewImageSrc: item.thumbnail, - imageFit: ImageFit.center, - height: 48, - width: 48 - } - ] - }; return ( -
- - - - - - - - + ); } + private _onRenderGridItem = (item: any, finalSize: ISize, isCompact: boolean): JSX.Element => { + return ( + + ); + } + }