Skip to content
This repository was archived by the owner on Mar 13, 2025. It is now read-only.

Deploy to Production for Interview Scheduler #245

Merged
merged 28 commits into from
May 3, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
3a53474
changed buttons and headings in candidates page
mbaghel Apr 14, 2021
3011615
Added helper to create fake interviews. Injected fake interviews in l…
mbaghel Apr 15, 2021
add1f03
Added lastest interview info to table
mbaghel Apr 15, 2021
59d3c31
working previous interviews popup w/ basic accordion
mbaghel Apr 16, 2021
48573a9
finished previous interviews popup
mbaghel Apr 17, 2021
4e7536a
Finished appearance of interview details popup
mbaghel Apr 18, 2021
376ec39
Working Interview Details Popup, but without validation or closing+re…
mbaghel Apr 19, 2021
793d768
Added Interview Confirmation Popup. Started validation for Details popup
mbaghel Apr 19, 2021
a34ef25
Interview details popup working with validation and triggers confirm …
mbaghel Apr 19, 2021
d684488
Added selectCandidatePopup, started cleanup of other components
mbaghel Apr 19, 2021
d81af02
Documentation and cleanup
mbaghel Apr 19, 2021
746ded4
Merge pull request #151 from mbaghel/feature/interview-scheduler-gui
urwithat Apr 21, 2021
5f783a0
feat(interview-scheduler): backend integration
cagdas001 Apr 27, 2021
8d52552
Merge pull request #156 from cagdas001/feature/interview-scheduler-gui
nikolay83 Apr 27, 2021
88fa6b7
Merge pull request #157 from topcoder-platform/feature/interview-sche…
urwithat Apr 28, 2021
8e34aea
Node version 10
urwithat Apr 28, 2021
757fac6
Update mockDockerfile
nkumar-topcoder Apr 28, 2021
cfeec2e
Format change for Interview 30 60
urwithat Apr 28, 2021
ba37135
fix(interview-scheduler): various fixes & improvements
cagdas001 Apr 29, 2021
f4011e4
Merge pull request #178 from cagdas001/dev
urwithat Apr 30, 2021
05d7f49
fix(interview-scheduler): remove externalId assignment to userId
cagdas001 Apr 30, 2021
a7d019a
Merge pull request #184 from cagdas001/dev
urwithat May 1, 2021
f5c6534
feat(interview-scheduler): add cap on round & Selected tab features
cagdas001 May 1, 2021
77f0e42
Merge pull request #185 from cagdas001/dev-2
urwithat May 1, 2021
5dcda80
Remove video from Interview Confirmation popup
nikolay83 May 1, 2021
2b61b8b
Merge pull request #187 from topcoder-platform/fix/video-interview-popup
urwithat May 1, 2021
e363f21
Remove embedded video
nikolay83 May 1, 2021
253f5e2
Merge pull request #188 from topcoder-platform/fix/video-interview-popup
urwithat May 1, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Use the base image with Node.js
FROM node:latest
FROM node:10

ARG APPMODE
ARG APPENV
Expand Down
2 changes: 1 addition & 1 deletion docker/mockDockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Use the base image with Node.js
FROM node:latest
FROM node:10

# Copy the current directory into the Docker image
COPY . /taas-app
Expand Down
28 changes: 28 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,9 @@
"axios": "^0.21.0",
"classnames": "^2.2.6",
"express": "^4.17.1",
"faker": "^5.5.3",
"final-form": "^4.20.1",
"final-form-arrays": "^3.0.2",
"immutability-helper": "^3.1.1",
"lodash": "^4.17.20",
"moment": "^2.29.1",
Expand All @@ -71,6 +73,7 @@
"react-datepicker": "^3.4.1",
"react-dom": "^16.12.0",
"react-final-form": "^6.5.2",
"react-final-form-arrays": "^3.1.3",
"react-loader-spinner": "^4.0.0",
"react-outside-click-handler": "^1.3.0",
"react-popper": "^2.2.3",
Expand Down
44 changes: 44 additions & 0 deletions src/components/Accordion/index.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/**
* Accordion
*
* An expandable item which can be used
* repeatadly to form an accordion style display
*/

import React, { useState } from "react";
import PT from "prop-types";
import "./styles.module.scss";

function Accordion(props) {
const { title, sidebar, subhead, children } = props;
const [isOpen, setIsOpen] = useState(false);

return (
<div styleName="accordion">
<button onClick={() => setIsOpen(!isOpen)} styleName="button">
{isOpen ? (
<div styleName="down-arrow" />
) : (
<div styleName="right-arrow" />
)}
<div styleName="heading">
<div>
<h4 styleName="title">{title}</h4>
<p>{subhead}</p>
</div>
<p>{sidebar}</p>
</div>
</button>
{isOpen && <div styleName="panel">{children}</div>}
</div>
);
}

Accordion.propTypes = {
title: PT.string,
sidebar: PT.string,
subhead: PT.string,
children: PT.node,
};

export default Accordion;
70 changes: 70 additions & 0 deletions src/components/Accordion/styles.module.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
@import "styles/include";

.accordion {
padding-bottom: 10px;
border-bottom: 1px solid #e9e9e9;
}

.button {
cursor: pointer;
width: 100%;
border: none;
outline: none;
background-color: #fff;
color: #2a2a2a;
display: flex;
text-align: left;
flex-direction: row;
justify-content: flex-start;
align-items: center;
padding: 15px 0 10px 0;

p {
@include font-roboto;
font-size: 14px;
}
}

.down-arrow {
display: inline-block;
content: '';
height: 13px;
width: 13px;
margin-right: 16px;
border-bottom: 3px solid #137D60;
border-right: 3px solid #137D60;
transform: rotate(45deg);
}

.right-arrow {
display: inline-block;
content: '';
height: 13px;
width: 13px;
margin-right: 16px;
border-bottom: 3px solid #137D60;
border-right: 3px solid #137D60;
transform: rotate(-45deg);
}

.heading {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
width: 100%;
}

.title {
@include font-barlow;
font-weight: 600;
font-size: 20px;
margin: 0;
padding: 0;
text-transform: uppercase;
}

.panel {
padding-left: 28px;
font-size: 14px;
}
6 changes: 5 additions & 1 deletion src/components/ActionsMenu/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,11 @@ const ActionsMenu = ({ options = [] }) => {
onClick={closeOnAction(option.action)}
role="button"
tabIndex={0}
styleName="option"
styleName={
"option" +
(option.style ? " " + option.style : "") +
(option.disabled ? " disabled" : "")
}
>
{option.label}
</div>
Expand Down
19 changes: 16 additions & 3 deletions src/components/ActionsMenu/styles.module.scss
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,23 @@
}

.option {
color: #0d61bf;
color: #219174;
cursor: pointer;
font-size: 14px;
line-height: 20px;
font-size: 12px;
font-weight: bold;
letter-spacing: 0.8px;
line-height: 30px;
text-transform: uppercase;
outline: none;
padding: 5px 0;
}

.danger {
color: #EF476F;
}

.disabled {
color: gray;
opacity: 0.6;
pointer-events: none;
}
1 change: 1 addition & 0 deletions src/components/BaseModal/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ const modalStyle = {
maxWidth: "640px",
width: "100%",
margin: 0,
"overflow-x": "hidden",
};

const containerStyle = {
Expand Down
45 changes: 45 additions & 0 deletions src/components/Radio/index.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/**
* Radio
*
* A styled radio button
* Used in RadioFieldGroup component
*/

import React from "react";
import PT from "prop-types";
import cn from "classnames";
import "./styles.module.scss";

function Radio(props) {
return (
<label styleName={cn("container", { horizontal: props.horizontal })}>
<input
styleName="radio-input"
type={props.type}
name={props.name}
value={props.value}
checked={props.checked}
disabled={props.disabled}
onBlur={props.onBlur}
onFocus={props.onFocus}
onChange={props.onChange}
/>
<span styleName="custom" />
{props.label}
</label>
);
}

Radio.propTypes = {
onChange: PT.func,
onBlur: PT.func,
onFocus: PT.func,
value: PT.string.isRequired,
disabled: PT.bool,
type: PT.string.isRequired,
label: PT.string,
checked: PT.bool,
horizontal: PT.bool,
};

export default Radio;
59 changes: 59 additions & 0 deletions src/components/Radio/styles.module.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
.radio-input {
width: auto;
height: auto;
position: absolute;
opacity: 0;
cursor: pointer;
}

.container {
display: block;
position: relative;
padding-left: 35px;
margin-bottom: 24px;
cursor: pointer;
font-size: 14px;
user-select: none;

&.horizontal {
margin-bottom: 0;
display: inline-block;
margin-left: 24px;
}
}

.custom {
position: absolute;
top: 0;
left: 0;
height: 24px;
width: 24px;
background-color: #fff;
border-radius: 50%;
border: 1px solid #AAA;
}

.radio-input:checked ~ .custom {
background-color: #0AB88A;
box-shadow: inset 0 1px 2px 0 rgba(0, 0, 0, 0.29);
}

.custom:after {
content: "";
position: absolute;
display: none;
}

.radio-input:checked ~ .custom:after {
display: block;
}

.container .custom:after {
top: 5px;
left: 5px;
width: 12px;
height: 12px;
border-radius: 50%;
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.35);
background: white;
}
Loading