8 | Inbox loads data from json
9 | Open message in modal
10 | Compose message modal
11 | Mark items as "read"
12 | Mark items as "deleted"
13 | Mark single items or toggle all
14 | View deleted items
15 | Refresh/reload messages
16 | Unread messages count
17 | Deleted messages count
18 |
19 |
20 | );
21 | };
22 |
23 | export default AboutHtml;
24 |
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
11 | React Inbox App
12 |
13 |
14 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-bootstrap-4-inbox",
3 | "version": "1.0.0",
4 | "description": "A simple ReactJs Inbox app that uses Bootstrap 4 and FontAwesome icons. Reads messages.json data, and displays in a list. Messages can be marked as read, and there's a modal to view or compose messages.",
5 | "keywords": [
6 | "inbox",
7 | "react",
8 | "reactjs",
9 | "bootstrap",
10 | "messages"
11 | ],
12 | "main": "src/index.js",
13 | "dependencies": {
14 | "react": "16.4.2",
15 | "react-dom": "16.4.2",
16 | "react-scripts": "1.1.4",
17 | "jquery": "^3.3.1",
18 | "bootstrap": "^4.1.3",
19 | "popper.js": "^1.14.3"
20 | },
21 | "devDependencies": {},
22 | "scripts": {
23 | "start": "react-scripts start",
24 | "build": "react-scripts build",
25 | "test": "react-scripts test --env=jsdom",
26 | "eject": "react-scripts eject"
27 | }
28 | }
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | The MIT License(MIT)
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files(the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ReactJs + Bootstrap 4 Inbox
2 | ==
3 |
4 | 👋 Hello developer,
5 | I created this ReactJs app using create-react-app and Bootstrap.
6 |
7 |
8 |
9 |
10 | Demo:
11 | Repo:
12 |
13 | Features
14 | --
15 |
16 | Inbox loads data from json
17 |
18 | Open message in modal
19 |
20 | Compose message modal
21 |
22 | Mark items as "read"
23 |
24 | Mark items as "deleted"
25 |
26 | Mark single items or toggle all
27 |
28 | View deleted items
29 |
30 |
31 | Demonstrated Concepts
32 | --
33 | - Use create-react-app to create a simple messaging app
34 | - Read data from a .json file in ReactJs
35 | - Separate Component and template HTML in ReactJs (Inbox.js & InboxHtml.jsx)
36 | - Share data/state between child to parent Component
37 | - Use and import Bootstrap CSS and Js in ReactJs
38 | - Open a Bootstrap 4 Modal in ReactJs
39 | - Update a single object property in React State array (Inbox.js)
40 | - Delete multiple items in a React State array
41 |
42 |
43 | --
44 |
45 |
--------------------------------------------------------------------------------
/src/components/templates/HeaderHtml.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | export const HeaderHtml = () => {
4 | return (
5 |
6 |