Articles about European Sharepoint Hosting Service
SharePoint 2013 Hosting – HostForLIFE : Modal Popup In SPFx
In this article, we will learn about the implementation of Modal Popup in our SPFx component using FluentUi.
Steps
Open a command prompt and create a directory for the SPFx solution.
md spfx-MyModalPopup
Navigate to the above created directory.
cd spfx-MyModalPopup
Run the Yeoman SharePoint Generator to create the solution.
yo @microsoft/sharepoint
Solution Name
Hit Enter for the default name (spfx-MyModalPopup in this case) or type in any other name for your solution.
Selected choice – Hit Enter
Target for the component
Here, we can select the target environment where we are planning to deploy the client web part; i.e., SharePoint Online or SharePoint OnPremise (SharePoint 2016 onwards).
Selected choice – SharePoint Online only (latest).
Place of files
We may choose to use the same folder or create a subfolder for our solution.
Selected choice – same folder.
Deployment option
Selecting Y will allow the app to be deployed instantly to all sites and be accessible everywhere.
Selected choice – N (install on each site explicitly).
Permissions to access web APIs
Choose if the components in the solution require permission to access web APIs that are unique and not shared with other components in the tenant.
Selected choice – N (solution contains unique permissions)
Type of client-side component to create
We can choose to create a client-side web part or an extension. Choose the web part option.
Selected choice – WebPart
Web part name
Hit Enter to select the default name or type in any other name.
Selected choice – MyModalPopup
Web part description
Hit Enter to select the default description or type in any other value.
Framework to use
Select any JavaScript framework to develop the component. Available choices are – No JavaScript Framework, React, and Knockout.
Selected choice – React
The Yeoman generator will perform a scaffolding process to generate the solution. The scaffolding process will take a significant amount of time.
Once the scaffolding process is completed, lock down the version of project dependencies by running the below command,
npm shrinkwrap
In the command prompt, type the below command to open the solution in the code editor of your choice.
1 |
npm install @fluentui<span class="token operator">/</span>react |
In MyModalPopup.tsx,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
<span class="token keyword module keyword-import">import</span> <span class="token imports"><span class="token operator">*</span> <span class="token keyword module keyword-as">as</span> <span class="token maybe-class-name">React</span></span> <span class="token keyword module keyword-from">from</span> <span class="token string">'react'</span><span class="token punctuation">;</span> <span class="token keyword module keyword-import">import</span> <span class="token imports"><span class="token punctuation">{</span> <span class="token maybe-class-name">IMyModalPopupProps</span> <span class="token punctuation">}</span></span> <span class="token keyword module keyword-from">from</span> <span class="token string">'./IMyModalPopupProps'</span><span class="token punctuation">;</span> <span class="token keyword keyword-interface">interface</span> <span class="token class-name">IPopupState</span> <span class="token punctuation">{</span> callchildcomponent<span class="token operator">:</span>boolean<span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword module keyword-import">import</span> <span class="token imports"><span class="token punctuation">{</span> <span class="token maybe-class-name">DefaultButton</span> <span class="token punctuation">}</span></span> <span class="token keyword module keyword-from">from</span> <span class="token string">'@fluentui/react/lib/Button'</span><span class="token punctuation">;</span> <span class="token keyword module keyword-import">import</span> <span class="token imports"><span class="token punctuation">{</span><span class="token maybe-class-name">MYModal</span><span class="token punctuation">}</span></span> <span class="token keyword module keyword-from">from</span> <span class="token string">'./MYModal'</span> <span class="token keyword module keyword-export">export</span> <span class="token keyword module keyword-default">default</span> <span class="token keyword keyword-class">class</span> <span class="token class-name">MyModalPopup</span> <span class="token keyword keyword-extends">extends</span> <span class="token class-name">React<span class="token punctuation">.</span>Component</span><span class="token operator"><</span><span class="token maybe-class-name">IMyModalPopupProps</span><span class="token punctuation">,</span> <span class="token maybe-class-name">IPopupState</span><span class="token operator">></span> <span class="token punctuation">{</span> <span class="token function">constructor</span><span class="token punctuation">(</span><span class="token parameter">props<span class="token operator">:</span> <span class="token maybe-class-name">IMyModalPopupProps</span><span class="token punctuation">,</span> state<span class="token operator">:</span> <span class="token maybe-class-name">IPopupState</span></span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword keyword-super">super</span><span class="token punctuation">(</span>props<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword keyword-this">this</span><span class="token punctuation">.</span><span class="token property-access">state</span> <span class="token operator">=</span> <span class="token punctuation">{</span> callchildcomponent<span class="token operator">:</span><span class="token boolean">false</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token keyword keyword-this">this</span><span class="token punctuation">.</span><span class="token property-access">handler</span> <span class="token operator">=</span> <span class="token keyword keyword-this">this</span><span class="token punctuation">.</span><span class="token method function property-access">handler</span><span class="token punctuation">.</span><span class="token method function property-access">bind</span><span class="token punctuation">(</span><span class="token keyword keyword-this">this</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword keyword-this">this</span><span class="token punctuation">.</span><span class="token property-access"><span class="token maybe-class-name">Buttonclick</span></span> <span class="token operator">=</span> <span class="token keyword keyword-this">this</span><span class="token punctuation">.</span><span class="token method function property-access"><span class="token maybe-class-name">Buttonclick</span></span><span class="token punctuation">.</span><span class="token method function property-access">bind</span><span class="token punctuation">(</span><span class="token keyword keyword-this">this</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token function">handler</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword keyword-this">this</span><span class="token punctuation">.</span><span class="token method function property-access">setState</span><span class="token punctuation">(</span><span class="token punctuation">{</span> callchildcomponent<span class="token operator">:</span> <span class="token boolean">false</span> <span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token punctuation">}</span> <span class="token keyword keyword-private">private</span> <span class="token function"><span class="token maybe-class-name">Buttonclick</span></span><span class="token punctuation">(</span><span class="token parameter">e</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> e<span class="token punctuation">.</span><span class="token method function property-access">preventDefault</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword keyword-this">this</span><span class="token punctuation">.</span><span class="token method function property-access">setState</span><span class="token punctuation">(</span><span class="token punctuation">{</span> callchildcomponent<span class="token operator">:</span><span class="token boolean">true</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword keyword-public">public</span> <span class="token function">render</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">:</span> <span class="token maybe-class-name">React</span><span class="token punctuation">.</span><span class="token property-access"><span class="token maybe-class-name">ReactElement</span></span><span class="token operator"><</span><span class="token maybe-class-name">IMyModalPopupProps</span><span class="token operator">></span> <span class="token punctuation">{</span> <span class="token keyword control-flow keyword-return">return</span> <span class="token punctuation">(</span> <span class="token operator"><</span>div<span class="token operator">></span> <span class="token operator"><</span><span class="token maybe-class-name">DefaultButton</span> onClick<span class="token operator">=</span><span class="token punctuation">{</span><span class="token punctuation">(</span><span class="token parameter">e</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span><span class="token keyword keyword-this">this</span><span class="token punctuation">.</span><span class="token method function property-access"><span class="token maybe-class-name">Buttonclick</span></span><span class="token punctuation">(</span>e<span class="token punctuation">)</span> <span class="token punctuation">}</span> text<span class="token operator">=</span><span class="token string">"Open Modal"</span> <span class="token operator">/</span><span class="token operator">></span> <span class="token punctuation">{</span> <span class="token keyword keyword-this">this</span><span class="token punctuation">.</span><span class="token property-access">state</span><span class="token punctuation">.</span><span class="token property-access">callchildcomponent</span> <span class="token operator">&&</span> <span class="token operator"><</span><span class="token maybe-class-name">MYModal</span> myprops<span class="token operator">=</span><span class="token punctuation">{</span><span class="token keyword keyword-this">this</span><span class="token punctuation">.</span><span class="token property-access">state</span><span class="token punctuation">}</span> handler <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token keyword keyword-this">this</span><span class="token punctuation">.</span><span class="token property-access">handler</span><span class="token punctuation">}</span><span class="token operator">/</span><span class="token operator">></span><span class="token punctuation">}</span> <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> |
In MYModal.tsx,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
<span class="token keyword module keyword-import">import</span> <span class="token imports"><span class="token operator">*</span> <span class="token keyword module keyword-as">as</span> <span class="token maybe-class-name">React</span></span> <span class="token keyword module keyword-from">from</span> <span class="token string">'react'</span><span class="token punctuation">;</span> <span class="token keyword module keyword-import">import</span> <span class="token imports"><span class="token punctuation">{</span> useId<span class="token punctuation">,</span> useBoolean <span class="token punctuation">}</span></span> <span class="token keyword module keyword-from">from</span> <span class="token string">'@fluentui/react-hooks'</span><span class="token punctuation">;</span> <span class="token keyword module keyword-import">import</span> <span class="token imports"><span class="token punctuation">{</span> getTheme<span class="token punctuation">,</span> mergeStyleSets<span class="token punctuation">,</span> <span class="token maybe-class-name">FontWeights</span><span class="token punctuation">,</span> <span class="token maybe-class-name">Modal</span><span class="token punctuation">,</span> <span class="token maybe-class-name">IIconProps</span><span class="token punctuation">,</span> <span class="token maybe-class-name">IStackProps</span><span class="token punctuation">,</span> <span class="token punctuation">}</span></span> <span class="token keyword module keyword-from">from</span> <span class="token string">'@fluentui/react'</span><span class="token punctuation">;</span> <span class="token keyword module keyword-import">import</span> <span class="token imports"><span class="token punctuation">{</span> <span class="token maybe-class-name">IconButton</span><span class="token punctuation">,</span> <span class="token maybe-class-name">IButtonStyles</span> <span class="token punctuation">}</span></span> <span class="token keyword module keyword-from">from</span> <span class="token string">'@fluentui/react/lib/Button'</span><span class="token punctuation">;</span> <span class="token keyword module keyword-export">export</span> <span class="token keyword keyword-const">const</span> <span class="token function-variable function"><span class="token maybe-class-name">MYModal</span></span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token parameter">myprops</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span> <span class="token keyword keyword-const">const</span> <span class="token punctuation">[</span>isModalOpen<span class="token punctuation">,</span> <span class="token punctuation">{</span> setTrue<span class="token operator">:</span> showModal<span class="token punctuation">,</span> setFalse<span class="token operator">:</span> hideModal <span class="token punctuation">}</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token function">useBoolean</span><span class="token punctuation">(</span><span class="token boolean">false</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword keyword-const">const</span> <span class="token punctuation">[</span>isPopup<span class="token punctuation">,</span> setisPopup<span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token maybe-class-name">React</span><span class="token punctuation">.</span><span class="token method function property-access">useState</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword keyword-const">const</span> titleId <span class="token operator">=</span> <span class="token function">useId</span><span class="token punctuation">(</span><span class="token string">'title'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token maybe-class-name">React</span><span class="token punctuation">.</span><span class="token method function property-access">useEffect</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span> <span class="token function">showModal</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">[</span>isPopup<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword keyword-function">function</span> <span class="token function"><span class="token maybe-class-name">ExitHandler</span></span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token function">hideModal</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">setisPopup</span><span class="token punctuation">(</span><span class="token parameter">current</span> <span class="token arrow operator">=></span> <span class="token operator">!</span>current<span class="token punctuation">)</span> myprops<span class="token punctuation">.</span><span class="token method function property-access">handler</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword control-flow keyword-return">return</span> <span class="token punctuation">(</span> <span class="token operator"><</span>div<span class="token operator">></span> <span class="token operator"><</span><span class="token maybe-class-name">Modal</span> titleAriaId<span class="token operator">=</span><span class="token punctuation">{</span>titleId<span class="token punctuation">}</span> isOpen<span class="token operator">=</span><span class="token punctuation">{</span>isModalOpen<span class="token punctuation">}</span> onDismiss<span class="token operator">=</span><span class="token punctuation">{</span><span class="token maybe-class-name">ExitHandler</span><span class="token punctuation">}</span> isBlocking<span class="token operator">=</span><span class="token punctuation">{</span><span class="token boolean">true</span><span class="token punctuation">}</span> containerClassName<span class="token operator">=</span><span class="token punctuation">{</span>contentStyles<span class="token punctuation">.</span><span class="token property-access">container</span><span class="token punctuation">}</span> <span class="token operator">></span> <span class="token operator"><</span>div className<span class="token operator">=</span><span class="token punctuation">{</span>contentStyles<span class="token punctuation">.</span><span class="token property-access">header</span><span class="token punctuation">}</span><span class="token operator">></span> <span class="token operator"><</span>span id<span class="token operator">=</span><span class="token punctuation">{</span>titleId<span class="token punctuation">}</span><span class="token operator">></span><span class="token maybe-class-name">Modal</span> <span class="token maybe-class-name">Popup</span><span class="token operator"><</span><span class="token operator">/</span>span<span class="token operator">></span> <span class="token operator"><</span><span class="token maybe-class-name">IconButton</span> styles<span class="token operator">=</span><span class="token punctuation">{</span>iconButtonStyles<span class="token punctuation">}</span> iconProps<span class="token operator">=</span><span class="token punctuation">{</span>cancelIcon<span class="token punctuation">}</span> ariaLabel<span class="token operator">=</span><span class="token string">"Close popup modal"</span> onClick<span class="token operator">=</span><span class="token punctuation">{</span><span class="token maybe-class-name">ExitHandler</span><span class="token punctuation">}</span> <span class="token operator">/</span><span class="token operator">></span> <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span> <span class="token operator"><</span>div className<span class="token operator">=</span><span class="token punctuation">{</span>contentStyles<span class="token punctuation">.</span><span class="token property-access">body</span><span class="token punctuation">}</span><span class="token operator">></span> <span class="token operator"><</span>p<span class="token operator">></span> <span class="token maybe-class-name">Saying</span> “please” and “thank you<span class="token punctuation">.</span><span class="token property-access">”</span> <span class="token maybe-class-name">It</span> shows gratitude <span class="token keyword control-flow keyword-for">for</span> the things others <span class="token keyword control-flow keyword-do">do</span> <span class="token keyword control-flow keyword-for">for</span> you<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Making</span></span> introductions<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Always</span></span> introduce yourself to adults who come visit<span class="token punctuation">,</span> and introduce friends to each other<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Covering</span></span> your mouth when you sneeze or cough<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Germs</span></span> are gross<span class="token operator">!</span> <span class="token maybe-class-name">Not</span> picking your nose <span class="token keyword keyword-in">in</span> <span class="token keyword keyword-public">public</span><span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">No</span></span> one wants to see that<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Greeting</span></span> visitors and say goodbye to them<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Even</span></span> <span class="token keyword control-flow keyword-if">if</span> you feel shy<span class="token punctuation">,</span> greetings and goodbyes are important<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Asking</span></span> <span class="token keyword control-flow keyword-for">for</span> things instead <span class="token keyword keyword-of">of</span> reaching <span class="token keyword control-flow keyword-for">for</span> them<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">It’s</span></span> disruptive when children reach across the table during mealtimes<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Knocking</span></span> on doors before entering a room<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Especially</span></span> the bathroom door<span class="token operator">!</span> <span class="token maybe-class-name">Responding</span> when an adult asks how you are<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">It’s</span></span> even better <span class="token keyword control-flow keyword-if">if</span> you ask her how she is<span class="token punctuation">,</span> too<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Not</span></span> interrupting when grownups are talking<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Wait</span></span> <span class="token keyword control-flow keyword-for">for</span> your turn<span class="token punctuation">,</span> no matter how impatient you feel<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Saying</span></span> “Excuse me” when you need to interrupt a conversation<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Sometimes</span></span> it’s an emergency<span class="token punctuation">,</span> but even so<span class="token punctuation">,</span> please be polite<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Saying</span></span> “Excuse me” <span class="token keyword control-flow keyword-if">if</span> you bump into someone<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Make</span></span> sure they know you didn’t <span class="token keyword control-flow keyword-do">do</span> it on purpose<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Not</span></span> using electronics at the dinner table<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Show</span></span> others that their presence is important to you<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Sitting</span></span> attentively through plays<span class="token punctuation">,</span> movies<span class="token punctuation">,</span> and musical performances<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Show</span></span> proper respect<span class="token punctuation">,</span> even <span class="token keyword control-flow keyword-if">if</span> you’re bored<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Washing</span></span> your hands before meals<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">It’s</span></span> good etiquette and good hygiene too<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Not</span></span> commenting on personal appearance<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">It</span></span> hurts feelings unnecessarily<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Holding</span></span> doors open <span class="token keyword control-flow keyword-for">for</span> others<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">No</span></span> one likes to have the door slam on them <span class="token keyword module keyword-as">as</span> they enter a room<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Keeping</span></span> burps silent<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">And</span></span> remember to say “Excuse me” afterward<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Offering</span></span> to help adults <span class="token keyword control-flow keyword-if">if</span> they need it<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Help</span></span> wash someone’s car or carry their groceries<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Giving</span></span> a genuine apology when needed<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Sometimes</span></span><span class="token punctuation">,</span> the other person needs to hear you say<span class="token punctuation">,</span> “<span class="token constant">I</span>’m sorry<span class="token punctuation">.</span><span class="token property-access">”</span> <span class="token maybe-class-name">Asking</span> to be excused at the end <span class="token keyword keyword-of">of</span> a meal<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Instead</span></span> <span class="token keyword keyword-of">of</span> just getting up to leave<span class="token punctuation">,</span> say<span class="token punctuation">,</span> “Please may <span class="token constant">I</span> be excused<span class="token operator">?</span>” <span class="token maybe-class-name">Using</span> good table manners when eating<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Use</span></span> utensils properly and chew <span class="token keyword keyword-with">with</span> your mouth closed<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Having</span></span> a positive attitude<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">You</span></span> will be someone that people enjoy having around<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Shaking</span></span> hands<span class="token punctuation">.</span> <span class="token constant">A</span> firm handshake makes a good impression when you meet someone<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Returning</span></span> items after borrowing them<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Show</span></span> respect <span class="token keyword control-flow keyword-for">for</span> other people’s belongings<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Avoiding</span></span> bad language<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">The</span></span> words you use reveal your character<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Sharing</span></span><span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">It’s</span></span> a basic way to show consideration <span class="token keyword control-flow keyword-for">for</span> the needs and feelings <span class="token keyword keyword-of">of</span> others<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Giving</span></span> compliments<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Everyone</span></span> likes to hear nice things about themselves<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Doing</span></span> tasks <span class="token keyword control-flow keyword-for">for</span> adults without complaining<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Don’t</span></span> make their lives more complicated by arguing<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Writing</span></span> thank<span class="token operator">-</span>you notes when you receive gifts<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Technology</span></span> is great<span class="token punctuation">,</span> but sometimes people need a more personal touch<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">Doing</span></span> <span class="token keyword control-flow keyword-for">for</span> others what you want them to <span class="token keyword control-flow keyword-do">do</span> <span class="token keyword control-flow keyword-for">for</span> you<span class="token punctuation">.</span> <span class="token property-access"><span class="token maybe-class-name">If</span></span> you remember <span class="token keyword keyword-this">this</span> rule<span class="token punctuation">,</span> it’s easier to follow all the others<span class="token punctuation">.</span> <span class="token operator"><</span><span class="token operator">/</span>p<span class="token operator">></span> <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span> <span class="token operator"><</span><span class="token operator">/</span><span class="token maybe-class-name">Modal</span><span class="token operator">></span> <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token keyword keyword-const">const</span> cancelIcon<span class="token operator">:</span> <span class="token maybe-class-name">IIconProps</span> <span class="token operator">=</span> <span class="token punctuation">{</span> iconName<span class="token operator">:</span> <span class="token string">'Cancel'</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token keyword keyword-const">const</span> theme <span class="token operator">=</span> <span class="token function">getTheme</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword keyword-const">const</span> contentStyles <span class="token operator">=</span> <span class="token function">mergeStyleSets</span><span class="token punctuation">(</span><span class="token punctuation">{</span> container<span class="token operator">:</span> <span class="token punctuation">{</span> display<span class="token operator">:</span> <span class="token string">'flex'</span><span class="token punctuation">,</span> flexFlow<span class="token operator">:</span> <span class="token string">'column nowrap'</span><span class="token punctuation">,</span> alignItems<span class="token operator">:</span> <span class="token string">'stretch'</span><span class="token punctuation">,</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> header<span class="token operator">:</span> <span class="token punctuation">[</span> <span class="token comment">// eslint-disable-next-line deprecation/deprecation</span> theme<span class="token punctuation">.</span><span class="token property-access">fonts</span><span class="token punctuation">.</span><span class="token property-access">xLarge</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> flex<span class="token operator">:</span> <span class="token string">'1 1 auto'</span><span class="token punctuation">,</span> borderTop<span class="token operator">:</span> <span class="token string">'4px solid ${theme.palette.themePrimary}'</span><span class="token punctuation">,</span> color<span class="token operator">:</span> theme<span class="token punctuation">.</span><span class="token property-access">palette</span><span class="token punctuation">.</span><span class="token property-access">neutralPrimary</span><span class="token punctuation">,</span> display<span class="token operator">:</span> <span class="token string">'flex'</span><span class="token punctuation">,</span> alignItems<span class="token operator">:</span> <span class="token string">'center'</span><span class="token punctuation">,</span> fontWeight<span class="token operator">:</span> <span class="token maybe-class-name">FontWeights</span><span class="token punctuation">.</span><span class="token property-access">semibold</span><span class="token punctuation">,</span> padding<span class="token operator">:</span> <span class="token string">'12px 12px 14px 24px'</span><span class="token punctuation">,</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">]</span><span class="token punctuation">,</span> body<span class="token operator">:</span> <span class="token punctuation">{</span> flex<span class="token operator">:</span> <span class="token string">'4 4 auto'</span><span class="token punctuation">,</span> padding<span class="token operator">:</span> <span class="token string">'0 24px 24px 24px'</span><span class="token punctuation">,</span> overflowY<span class="token operator">:</span> <span class="token string">'hidden'</span><span class="token punctuation">,</span> selectors<span class="token operator">:</span> <span class="token punctuation">{</span> p<span class="token operator">:</span> <span class="token punctuation">{</span> margin<span class="token operator">:</span> <span class="token string">'14px 0'</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token string">'p:first-child'</span><span class="token operator">:</span> <span class="token punctuation">{</span> marginTop<span class="token operator">:</span> <span class="token number">0</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token string">'p:last-child'</span><span class="token operator">:</span> <span class="token punctuation">{</span> marginBottom<span class="token operator">:</span> <span class="token number">0</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword keyword-const">const</span> stackProps<span class="token operator">:</span> <span class="token maybe-class-name">Partial</span><span class="token operator"><</span><span class="token maybe-class-name">IStackProps</span><span class="token operator">></span> <span class="token operator">=</span> <span class="token punctuation">{</span> horizontal<span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span> tokens<span class="token operator">:</span> <span class="token punctuation">{</span> childrenGap<span class="token operator">:</span> <span class="token number">40</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> styles<span class="token operator">:</span> <span class="token punctuation">{</span> root<span class="token operator">:</span> <span class="token punctuation">{</span> marginBottom<span class="token operator">:</span> <span class="token number">20</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token keyword keyword-const">const</span> iconButtonStyles<span class="token operator">:</span> <span class="token maybe-class-name">Partial</span><span class="token operator"><</span><span class="token maybe-class-name">IButtonStyles</span><span class="token operator">></span> <span class="token operator">=</span> <span class="token punctuation">{</span> root<span class="token operator">:</span> <span class="token punctuation">{</span> color<span class="token operator">:</span> theme<span class="token punctuation">.</span><span class="token property-access">palette</span><span class="token punctuation">.</span><span class="token property-access">neutralPrimary</span><span class="token punctuation">,</span> marginLeft<span class="token operator">:</span> <span class="token string">'auto'</span><span class="token punctuation">,</span> marginTop<span class="token operator">:</span> <span class="token string">'4px'</span><span class="token punctuation">,</span> marginRight<span class="token operator">:</span> <span class="token string">'2px'</span><span class="token punctuation">,</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> rootHovered<span class="token operator">:</span> <span class="token punctuation">{</span> color<span class="token operator">:</span> theme<span class="token punctuation">.</span><span class="token property-access">palette</span><span class="token punctuation">.</span><span class="token property-access">neutralDark</span><span class="token punctuation">,</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> |
Expected Output
Conclusion
In this article, we learned how to implement Modal Popup in our SPFx component. I hope this helps someone. Happy coding 🙂
Print article | This entry was posted by Peter on June 9, 2021 at 4:03 am, and is filed under European SharePoint 2013 Hosting. Follow any responses to this post through RSS 2.0. Both comments and pings are currently closed. |