Skip to content

Commit fd85465

Browse files
authored
Merge pull request #25 from oslabs-beta/ts-coverage
Updated all packages, added credentials
2 parents 0064cde + 4cd33d0 commit fd85465

File tree

154 files changed

+49999
-1206
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

154 files changed

+49999
-1206
lines changed

coverage-ts/assets/source-file.css

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
.uncovered {
2+
background: rgba(235, 26, 26, 0.3);
3+
}
4+
.CodeMirror {
5+
border: 1px solid #ccc;
6+
border-radius: 3px;
7+
height: auto;
8+
}
9+
.TS-lineuncovered {
10+
background: rgba(255, 255, 255, 0.3);
11+
width: 24px;
12+
}
13+
/* NOTE: I have to increase the specificity because of semantic-ui */
14+
p.footer-text {
15+
text-align: center;
16+
margin: 3em 0;
17+
}
18+
.gutter-marker {
19+
text-align: center;
20+
font-size: 0.6em;
21+
}

coverage-ts/assets/source-file.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
"use strict";
2+
3+
document.addEventListener("DOMContentLoaded", () => {
4+
const myTextArea = document.getElementById("editor");
5+
const codeMirrorInstance = CodeMirror.fromTextArea(myTextArea, {
6+
readOnly: true,
7+
lineNumbers: true,
8+
lineWrapping: false,
9+
mode: "text/typescript",
10+
gutters: ["TS-lineuncovered", "CodeMirror-linenumbers"]
11+
});
12+
const annotations = JSON.parse(
13+
document.getElementById("annotations").textContent
14+
);
15+
const gutters = {};
16+
17+
annotations.forEach((annotation) => {
18+
gutters[annotation.line] = (gutters[annotation.line] || 0) + 1;
19+
codeMirrorInstance.markText(
20+
{ line: annotation.line, ch: annotation.character },
21+
{
22+
line: annotation.line,
23+
ch: annotation.character + annotation.text.length
24+
},
25+
{
26+
className: "uncovered"
27+
}
28+
);
29+
});
30+
31+
Object.entries(gutters).forEach(([line, count]) => {
32+
const gutterMarker = document.createElement("div");
33+
34+
gutterMarker.textContent = count + "x";
35+
gutterMarker.classList.add("gutter-marker");
36+
gutterMarker.style.background = "rgba(255,0,0," + count * 0.2 + ")";
37+
38+
codeMirrorInstance.setGutterMarker(+line, "TS-lineuncovered", gutterMarker);
39+
});
40+
});
Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,192 @@
1+
2+
<!DOCTYPE html>
3+
<html>
4+
<head>
5+
<title>NavbarDash.tsx</title>
6+
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/semantic.min.css" type="text/css" rel="stylesheet">
7+
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.2/codemirror.min.js" type="text/javascript" charset="utf-8"></script>
8+
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.2/mode/javascript/javascript.min.js" type="text/javascript" charset="utf-8"></script>
9+
<link href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.2/codemirror.min.css" type="text/css" rel="stylesheet">
10+
<script src="../../../../assets/source-file.js" type="text/javascript" charset="utf-8"></script>
11+
<link href="../../../../assets/source-file.css" type="text/css" rel="stylesheet">
12+
</head>
13+
<body>
14+
<div style="margin-top:3em" class="ui container"><h1 class="ui header"><a href="../../../../index.html">TypeScript coverage report</a></h1><table style="margin-top:2em" class="ui celled table"><thead class=""><tr class=""><th class="">Filename</th><th class="">Percent</th><th class="">Threshold</th><th class="">Total</th><th class="">Covered</th><th class="">Uncovered</th></tr></thead><tbody class=""><tr class="positive"><td class="">app/src/Dashboard/NavbarDash.tsx</td><td class="">88.44%</td><td class="">80%</td><td class="">225</td><td class="">199</td><td class="">26</td></tr></tbody></table><textarea id="editor" readonly="" style="margin-top:3em">import React, { useState, useContext } from &#x27;react&#x27;;
15+
import { Theme } from &#x27;@mui/material/styles&#x27;;
16+
import withStyles from &#x27;@mui/styles/withStyles&#x27;;
17+
import createStyles from &#x27;@mui/styles/createStyles&#x27;;
18+
import makeStyles from &#x27;@mui/styles/makeStyles&#x27;;
19+
import AppBar from &#x27;@mui/material/AppBar&#x27;;
20+
import Avatar from &#x27;@mui/material/Avatar&#x27;;
21+
import Brightness3Icon from &#x27;@mui/icons-material/Brightness3&#x27;;
22+
import Brightness5Icon from &#x27;@mui/icons-material/Brightness5&#x27;;
23+
import Button from &#x27;@mui/material/Button&#x27;;
24+
import EventNoteIcon from &#x27;@mui/icons-material/EventNote&#x27;;
25+
import HomeIcon from &#x27;@mui/icons-material/Home&#x27;;
26+
import Toolbar from &#x27;@mui/material/Toolbar&#x27;;
27+
import Typography from &#x27;@mui/material/Typography&#x27;;
28+
import { Link } from &#x27;react-router-dom&#x27;;
29+
import Menu from &#x27;@mui/material/Menu&#x27;;
30+
import MenuItem from &#x27;@mui/material/MenuItem&#x27;;
31+
import SortIcon from &#x27;@mui/icons-material/Sort&#x27;;
32+
import StarBorderIcon from &#x27;@mui/icons-material/StarBorder&#x27;;
33+
import PersonIcon from &#x27;@mui/icons-material/Person&#x27;;
34+
import greenLogo from &#x27;../public/icons/png/512x512.png&#x27;;
35+
import {setStyle} from &#x27;../redux/reducers/slice/styleSlice&#x27;
36+
import { useSelector,useDispatch } from &#x27;react-redux&#x27;;
37+
38+
// NavBar text and button styling
39+
const useStyles = makeStyles((theme: Theme) =&gt; createStyles({
40+
root: {
41+
flexGrow: 1,
42+
width: &#x27;100%&#x27;,
43+
},
44+
menuButton: {
45+
marginRight: theme.spacing(2),
46+
color: &#x27;white&#x27;,
47+
},
48+
title: {
49+
flexGrow: 1,
50+
color: &#x27;white&#x27;,
51+
},
52+
manageProject: {
53+
display: &#x27;flex&#x27;,
54+
justifyContent: &#x27;center&#x27;,
55+
},
56+
}));
57+
// sorting options
58+
const sortMethods = [&#x27;RATING&#x27;, &#x27;DATE&#x27;, &#x27;USER&#x27;];
59+
// Drop down menu button for SORT PROJECTS
60+
const StyledMenu = withStyles({
61+
paper: {
62+
border: &#x27;1px solid #d3d4d5&#x27;,
63+
}
64+
})(props =&gt; (
65+
&lt;Menu
66+
elevation={0}
67+
// getContentAnchorEl={null}
68+
anchorOrigin={{
69+
vertical: &#x27;bottom&#x27;,
70+
horizontal: &#x27;center&#x27;
71+
}}
72+
transformOrigin={{
73+
vertical: &#x27;top&#x27;,
74+
horizontal: &#x27;center&#x27;
75+
}}
76+
{...props}
77+
/&gt;
78+
));
79+
const StyledMenuItem = withStyles(theme =&gt; ({
80+
root: {
81+
&#x27;&amp;:focus&#x27;: {
82+
&#x27;&amp; .MuiListItemIcon-root, &amp; .MuiListItemText-primary&#x27;: {
83+
color: theme.palette.common.white
84+
}
85+
}
86+
}
87+
}))(MenuItem);
88+
// TO DO: set types of props validation
89+
export default function NavBar(props) {
90+
// TO DO: import setStyle
91+
const classes = useStyles();
92+
const style = useSelector(store =&gt; store.styleSlice);
93+
const dispatch = useDispatch();
94+
const toggling = () =&gt; setIsOpen(!isOpen);
95+
// toggle to open and close dropdown sorting menu
96+
const [isOpen, setIsOpen] = useState(false);
97+
// State for sort projects button
98+
const [anchorEl, setAnchorEl] = React.useState(null);
99+
const handleClick = event =&gt; {
100+
setAnchorEl(event.currentTarget);
101+
};
102+
const handleClose = () =&gt; {
103+
setAnchorEl(null);
104+
};
105+
return (
106+
&lt;div className={classes.root} style={style}&gt;
107+
&lt;AppBar position=&#x27;static&#x27;&gt;
108+
&lt;Toolbar&gt;
109+
&lt;Avatar src={greenLogo}&gt;&lt;/Avatar&gt;
110+
&lt;Typography variant=&quot;h6&quot; style={{ marginLeft: &#x27;1rem&#x27; }} className={classes.title}&gt;
111+
ReacType
112+
&lt;/Typography&gt;
113+
&lt;div style ={ { textDecoration: &#x27;none&#x27; } }&gt;
114+
&lt;Button
115+
variant=&#x27;contained&#x27;
116+
color=&#x27;primary&#x27;
117+
onClick={handleClick}
118+
className=&#x27;navbarButton&#x27;
119+
id=&#x27;navbarButton&#x27;
120+
endIcon={&lt;SortIcon/&gt;}
121+
&gt;
122+
SORT PROJECT
123+
&lt;/Button&gt;
124+
&lt;StyledMenu // Dropdown menu connected to Manage Project Button
125+
id=&#x27;customized-menus&#x27;
126+
anchorEl={anchorEl}
127+
keepMounted
128+
open={Boolean(anchorEl)}
129+
onClose={handleClose}
130+
&gt;
131+
{sortMethods.map((option, index) =&gt; (
132+
&lt;StyledMenuItem onClick={() =&gt; {
133+
props.optionClicked(option);
134+
toggling();
135+
handleClose();
136+
}}
137+
variant=&#x27;contained&#x27;
138+
color=&#x27;primary&#x27;
139+
style={{ minWidth: &#x27;137.69px&#x27; }}
140+
className={classes.manageProject}
141+
key={index}
142+
&gt;
143+
&lt;Button
144+
color=&#x27;primary&#x27;
145+
endIcon={(option === &#x27;RATING&#x27;) ? &lt;StarBorderIcon/&gt; : (option === &#x27;DATE&#x27;) ? &lt;EventNoteIcon/&gt; : (option === &#x27;USER&#x27;) ? &lt;PersonIcon/&gt; : &#x27;&#x27;}
146+
&gt;
147+
{option}
148+
&lt;/Button&gt;
149+
&lt;/StyledMenuItem&gt;
150+
))}
151+
&lt;/StyledMenu&gt;
152+
&lt;/div&gt;
153+
&lt;Button
154+
className=&#x27;navbarButton&#x27;
155+
id=&#x27;navbarDashButton&#x27;
156+
color=&#x27;primary&#x27;
157+
variant=&#x27;contained&#x27;
158+
style={{minWidth: &#x27;113.97px&#x27;}}
159+
endIcon={props.isThemeLight ? &lt;Brightness3Icon/&gt; : &lt;Brightness5Icon/&gt;}
160+
onClick={() =&gt; {
161+
!style.backgroundColor
162+
? dispatch(setStyle({ backgroundColor: &#x27;#21262D&#x27; })) //dark mode color
163+
: dispatch(setStyle( null ))
164+
props.isThemeLight ? props.setTheme(false) : props.setTheme(true);
165+
}}
166+
&gt;
167+
{props.isThemeLight ? &#x27;Dark Mode&#x27; : &#x27;Light Mode&#x27;}
168+
&lt;/Button&gt;
169+
&lt;div&gt;
170+
&lt;Link to=&#x27;/&#x27; style={{textDecoration: &#x27;none&#x27;}}&gt;
171+
&lt;Button
172+
variant=&#x27;contained&#x27;
173+
color=&#x27;primary&#x27;
174+
style={{ minWidth: &#x27;137.69px&#x27;}}
175+
className=&quot;navbarButton&quot;
176+
id=&quot;ratingButton&quot;
177+
endIcon={&lt;HomeIcon/&gt;}
178+
&gt;
179+
HOME
180+
&lt;/Button&gt;
181+
&lt;/Link&gt;
182+
&lt;/div&gt;
183+
&lt;/Toolbar&gt;
184+
&lt;/AppBar&gt;
185+
&lt;/div&gt;
186+
);
187+
}
188+
</textarea><pre id="annotations" style="display:none">[{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:65,&quot;character&quot;:34,&quot;text&quot;:&quot;theme&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:69,&quot;character&quot;:8,&quot;text&quot;:&quot;color&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:69,&quot;character&quot;:15,&quot;text&quot;:&quot;theme&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:69,&quot;character&quot;:21,&quot;text&quot;:&quot;palette&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:69,&quot;character&quot;:29,&quot;text&quot;:&quot;common&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:69,&quot;character&quot;:36,&quot;text&quot;:&quot;white&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:75,&quot;character&quot;:31,&quot;text&quot;:&quot;props&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:84,&quot;character&quot;:9,&quot;text&quot;:&quot;anchorEl&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:85,&quot;character&quot;:22,&quot;text&quot;:&quot;event&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:86,&quot;character&quot;:16,&quot;text&quot;:&quot;event&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:86,&quot;character&quot;:22,&quot;text&quot;:&quot;currentTarget&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:112,&quot;character&quot;:12,&quot;text&quot;:&quot;anchorEl&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:112,&quot;character&quot;:22,&quot;text&quot;:&quot;anchorEl&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:114,&quot;character&quot;:26,&quot;text&quot;:&quot;anchorEl&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:119,&quot;character&quot;:22,&quot;text&quot;:&quot;props&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:119,&quot;character&quot;:28,&quot;text&quot;:&quot;optionClicked&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:145,&quot;character&quot;:21,&quot;text&quot;:&quot;props&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:145,&quot;character&quot;:27,&quot;text&quot;:&quot;isThemeLight&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:150,&quot;character&quot;:14,&quot;text&quot;:&quot;props&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:150,&quot;character&quot;:20,&quot;text&quot;:&quot;isThemeLight&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:150,&quot;character&quot;:35,&quot;text&quot;:&quot;props&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:150,&quot;character&quot;:41,&quot;text&quot;:&quot;setTheme&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:150,&quot;character&quot;:59,&quot;text&quot;:&quot;props&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:150,&quot;character&quot;:65,&quot;text&quot;:&quot;setTheme&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:153,&quot;character&quot;:13,&quot;text&quot;:&quot;props&quot;,&quot;kind&quot;:1},{&quot;file&quot;:&quot;app/src/Dashboard/NavbarDash.tsx&quot;,&quot;line&quot;:153,&quot;character&quot;:19,&quot;text&quot;:&quot;isThemeLight&quot;,&quot;kind&quot;:1}]</pre></div>
189+
<p class="footer-text">TypeScript Coverage Report generated by <a href="https://github.com/plantain-00/type-coverage">type-coverage</a> and <a href="https://github.com/alexcanessa/typescript-coverage-report">typescript-coverage-report</a> at Fri, 05 May 2023 01:51:04 GMT</p>
190+
</body>
191+
</html>
192+

0 commit comments

Comments
 (0)