...

/

Working Example of Notify Hook

Working Example of Notify Hook

Here is a fully functional React application that uses the Notify hook built in the previous lesson.

See the Notify Hook in action

The following example demonstrates a fully functional usage of the Notify hook.

Run the application. By clicking on the Save button, it will show a notification message upon the completion of the API request.

Later in the course, various components that make up this application are discussed.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
   xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   viewBox="0 0 48 48"
   version="1.1"
   id="svg15"
   sodipodi:docname="cross red circle.svg"
   inkscape:version="0.92.3 (2405546, 2018-03-11)">
  <metadata
     id="metadata19">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
        <dc:title />
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <sodipodi:namedview
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="1"
     objecttolerance="10"
     gridtolerance="10"
     guidetolerance="10"
     inkscape:pageopacity="0"
     inkscape:pageshadow="2"
     inkscape:window-width="1920"
     inkscape:window-height="1027"
     id="namedview17"
     showgrid="false"
     inkscape:zoom="4.9166667"
     inkscape:cx="-11.694915"
     inkscape:cy="40.271186"
     inkscape:window-x="-8"
     inkscape:window-y="-8"
     inkscape:window-maximized="1"
     inkscape:current-layer="g13" />
  <defs
     id="defs7">
    <linearGradient
       id="linearGradient828"
       osb:paint="solid">
      <stop
         style="stop-color:#ff0000;stop-opacity:1;"
         offset="0"
         id="stop826" />
    </linearGradient>
    <linearGradient
       id="0"
       gradientUnits="userSpaceOnUse"
       y1="47.37"
       x2="0"
       y2="-1.429">
      <stop
         stop-color="#c52828"
         id="stop2" />
      <stop
         offset="1"
         stop-color="#ff5454"
         id="stop4" />
    </linearGradient>
  </defs>
  <g
     transform="matrix(.99999 0 0 .99999-58.37.882)"
     enable-background="new"
     id="g13"
     style="fill-opacity:1">
    <circle
       cx="82.37"
       cy="23.12"
       r="24"
       fill="url(#0)"
       id="circle9"
       style="fill-opacity:1;fill:#FF7E00" />
    <path
       d="m87.77 23.725l5.939-5.939c.377-.372.566-.835.566-1.373 0-.54-.189-.997-.566-1.374l-2.747-2.747c-.377-.372-.835-.564-1.373-.564-.539 0-.997.186-1.374.564l-5.939 5.939-5.939-5.939c-.377-.372-.835-.564-1.374-.564-.539 0-.997.186-1.374.564l-2.748 2.747c-.377.378-.566.835-.566 1.374 0 .54.188.997.566 1.373l5.939 5.939-5.939 5.94c-.377.372-.566.835-.566 1.373 0 .54.188.997.566 1.373l2.748 2.747c.377.378.835.564 1.374.564.539 0 .997-.186 1.374-.564l5.939-5.939 5.94 5.939c.377.378.835.564 1.374.564.539 0 .997-.186 1.373-.564l2.747-2.747c.377-.372.566-.835.566-1.373 0-.54-.188-.997-.566-1.373l-5.939-5.94"
       fill="#fff"
       fill-opacity=".842"
       id="path11"
       style="fill-opacity:1;fill:#ffffff" />
  </g>
</svg>

Store

Store is where various parts of the global state are defined. Export the StoreContext object from store/index.js. It will be used later when accessing the dispatch function or the globalState object.

actions.js contains two action creators. updateNotify is used for updating the state for the Notify message. clearNotify can be called when wanting to clear the notification. ...