Skip to content

Commit c828b92

Browse files
authored
Refactor Ads UI to use Formik & Material (#634)
* builds again * loads a campaign * theme * theme * prettier * drawer * top app bar * fix signout, style login * fix signin * no need for selection * stalemated by the backend * complete form * make form easier to read * remove idea * add and remove ads and adsets * gotta delete more code then i add * delete more * closer to current experience * creative * ready for validation * no more outside alerter * use necessary formik * validations * validate * submit works * valid creative * bye advanced * create works * allow for edit * edit works * no viewing analytics while under review * all the old forms, gone * prettier congrats * direct to congrats * edit fully working * no ability to remove in edit * replace select settings * cant reduce empty array * add url validation * trailing asterick * no idea * no need for select * more unused * add a test * ability to specifty currency * disable changing monetary amount * validate start only on new campaign * reduce touched * fix test * save my active advertiser * disable new ad on update
1 parent 006caa4 commit c828b92

File tree

189 files changed

+5856
-11057
lines changed

Some content is hidden

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

189 files changed

+5856
-11057
lines changed

.prettierignore

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
node_modules
2+
build
3+
4+
# npm and prettier fight over a EOF on these files, let npm win:
5+
package.json
6+
package-lock.json
7+
.npm-upgrade.json

.prettierrc.json

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{}

package-lock.json

+1,634-2,278
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+30-31
Original file line numberDiff line numberDiff line change
@@ -5,45 +5,47 @@
55
"dependencies": {
66
"@apollo/client": "3.7.4",
77
"@date-io/moment": "2.16.1",
8-
"@material-ui/core": "4.9.13",
8+
"@emotion/react": "11.10.5",
9+
"@emotion/styled": "11.10.5",
10+
"@mui/icons-material": "5.11.0",
11+
"@mui/lab": "5.0.0-alpha.115",
12+
"@mui/material": "5.11.4",
13+
"@mui/styles": "5.11.2",
14+
"@mui/x-date-pickers": "5.0.14",
915
"axios": "1.2.2",
1016
"base64url": "3.0.1",
11-
"bootstrap": "4.5.3",
12-
"bootstrap-daterangepicker": "3.1.0",
1317
"graphql": "16.6.0",
1418
"highcharts": "10.3.2",
1519
"highcharts-react-official": "3.1.0",
1620
"http-proxy-middleware": "2.0.6",
1721
"jwt-decode": "3.1.2",
1822
"lodash": "4.17.21",
19-
"material-ui-pickers": "2.2.4",
2023
"moment": "2.29.4",
2124
"rc-menu": "8.1.0",
22-
"react": "16.14.0",
23-
"react-bootstrap-daterangepicker": "7.0.0",
24-
"react-chartjs-2": "2.9.0",
25-
"react-confetti": "5.0.1",
26-
"react-dom": "16.13.1",
25+
"react": "17.0.2",
26+
"formik": "2.2.9",
27+
"date-fns": "2.29.3",
28+
"date-fns-tz": "1.3.7",
29+
"react-dom": "17.0.2",
2730
"react-modal": "3.12.1",
28-
"react-redux": "7.2.0",
29-
"react-router-dom": "5.1.2",
30-
"react-select": "3.1.0",
31-
"react-switch": "5.0.1",
31+
"react-redux": "7.2.9",
32+
"react-router-dom": "5.3.4",
3233
"react-table": "7.8.0",
33-
"react-topbar-progress-indicator": "4.1.0",
34-
"redux": "4.0.5",
35-
"redux-form": "8.3.5",
34+
"react-topbar-progress-indicator": "4.1.1",
35+
"redux": "4.2.0",
36+
"redux-form": "8.3.8",
3637
"redux-logger": "3.0.6",
3738
"redux-persist": "6.0.0",
38-
"redux-thunk": "2.3.0",
39-
"styled-components": "5.1.0",
40-
"tweetnacl": "1.0.3"
39+
"redux-thunk": "2.4.2",
40+
"tweetnacl": "1.0.3",
41+
"yup": "0.32.11"
4142
},
4243
"scripts": {
4344
"start": "react-scripts start",
4445
"build": "react-scripts build",
4546
"test": "react-scripts test --env=jsdom",
4647
"codegen": "graphql-codegen",
48+
"format": "prettier --write .",
4749
"eject": "react-scripts eject",
4850
"tsc": "tsc"
4951
},
@@ -61,22 +63,19 @@
6163
"@types/jwt-decode": "2.2.1",
6264
"@types/lodash": "4.14.150",
6365
"@types/node": "13.13.5",
64-
"@types/react": "16.9.34",
65-
"@types/react-dom": "16.9.7",
66-
"@types/react-redux": "7.1.8",
67-
"@types/react-router-dom": "5.1.5",
68-
"@types/redux-form": "8.2.5",
69-
"@types/redux-logger": "3.0.7",
66+
"@types/react": "17.0.52",
67+
"@types/react-dom": "17.0.18",
68+
"@types/react-router-dom": "5.3.3",
69+
"@types/redux-form": "8.3.5",
70+
"@types/redux-logger": "3.0.9",
7071
"local-web-server": "4.0.0",
7172
"react-scripts": "5.0.0",
72-
"ts-node": "^10.9.1",
73-
"typescript": "4.9.4"
73+
"ts-node": "10.9.1",
74+
"typescript": "4.9.4",
75+
"prettier": "2.8.3"
7476
},
7577
"overrides": {
76-
"nth-check": "2.1.1",
77-
"material-ui-pickers": {
78-
"@material-ui/core": "$@material-ui/core"
79-
}
78+
"nth-check": "2.1.1"
8079
},
8180
"browserslist": [
8281
">0.2%",

src/App.tsx

+28-20
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ import _ from "lodash";
44
import Authentication from "./containers/Authentication/Authentication";
55
import { Redirect, Route, Switch, withRouter } from "react-router-dom";
66

7-
import Context from "./state/context";
7+
import Context, {getActiveAdvertiser, setActiveAdvertiser} from "./state/context";
88
import User from "./user/User";
99
import { connect } from "react-redux";
10-
import { SignOut } from "./actions";
1110
import jwt_decode from "jwt-decode";
1211
import moment from "moment";
12+
import {CssBaseline, StyledEngineProvider, ThemeProvider} from "@mui/material";
13+
import {theme} from "./theme";
1314

1415
const App = props => {
1516
const [loading, setLoading] = useState(undefined)
@@ -27,8 +28,9 @@ const App = props => {
2728
}
2829
const { advertisers, auth } = props;
2930
if (auth && auth.signedIn && auth.emailVerified) {
30-
const activeAdvertiser = _.find(advertisers, { state: "active" });
31+
const activeAdvertiser = getActiveAdvertiser() || _.find(advertisers, { state: "active" });
3132
if (advertisers.length > 0 && activeAdvertiser) {
33+
setActiveAdvertiser(activeAdvertiser);
3234
return <Redirect to="/user/main" />;
3335
} else {
3436
return <Redirect to="/auth" />;
@@ -40,23 +42,29 @@ const App = props => {
4042

4143
return (
4244
<>
43-
<Context.Provider value={{
44-
loading,
45-
sidebar,
46-
setSidebar,
47-
setLoading
48-
}}>
49-
<Switch>
50-
<Route path="/user/main" component={User} />
51-
<Route path="/auth" component={Authentication} />
52-
<Route path='/' exact={true} component={() => {
53-
window.location.href = "https://brave.com/brave-ads-waitlist/";
54-
return null;
55-
}} />
56-
{getRedirect()}
57-
</Switch>
58-
59-
</Context.Provider>
45+
<StyledEngineProvider injectFirst>
46+
<ThemeProvider theme={theme}>
47+
<CssBaseline />
48+
<Context.Provider value={{
49+
loading,
50+
sidebar,
51+
setSidebar,
52+
setLoading
53+
}}>
54+
<Switch>
55+
<Route path="/user/main">
56+
<User />
57+
</Route>
58+
<Route path="/auth" component={Authentication} />
59+
<Route path='/' exact={true} component={() => {
60+
window.location.href = "https://brave.com/brave-ads-waitlist/";
61+
return null;
62+
}} />
63+
{getRedirect()}
64+
</Switch>
65+
</Context.Provider>
66+
</ThemeProvider>
67+
</StyledEngineProvider>
6068
</>
6169
);
6270
}

src/actions/auth/auth.signin.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import axios from "axios";
22

3-
import { OpenSnackBar } from "../snackbar";
4-
53
import { IAuthAction, IAuthPayload, ISignInPayload } from "./auth.interface";
4+
import {OpenSnackBar} from "../snackbar";
65

76
export const SIGN_IN_START = "SIGNINSTART";
87
export const SignInStart = (payload: ISignInPayload): IAuthAction => ({
@@ -28,7 +27,6 @@ export const SignIn = (payload: ISignInPayload) => {
2827
try {
2928
dispatch(SignInStart(payload));
3029
dispatch(SignInSuccessful({ accessToken: payload.accessToken }));
31-
dispatch(OpenSnackBar("Signed In Successfully"));
3230
return Promise.resolve({ accessToken: payload.accessToken });
3331
} catch (error: any) {
3432
dispatch(SignInFailed(error));
@@ -43,7 +41,6 @@ export const SignIn = (payload: ISignInPayload) => {
4341
},
4442
});
4543
dispatch(SignInSuccessful(response.data));
46-
dispatch(OpenSnackBar("Signed In Successfully"));
4744
return Promise.resolve(response.data);
4845
// TODO: Remove w/ redux
4946
} catch (error: any) {

src/actions/campaigns/campaigns.create.ts

-53
This file was deleted.

src/actions/campaigns/campaigns.interface.ts

-26
This file was deleted.

src/actions/campaigns/index.ts

-2
This file was deleted.

src/actions/creativeTypes/creativetypes.get.ts

-50
This file was deleted.

src/actions/creativeTypes/creativetypes.interface.ts

-12
This file was deleted.

src/actions/creativeTypes/index.ts

-2
This file was deleted.

0 commit comments

Comments
 (0)