├── .firebaserc
├── .gitignore
├── .vscode
└── settings.json
├── README.md
├── build_fragments.js
├── dynamic_forms_templates
├── chingu_application_qs.json
├── new_voyage_user_qs.json
├── team_standup_qs.json
└── voyage_application_qs.json
├── firebase.json
├── package-lock.json
├── package.json
├── public
├── favicon
│ ├── android-icon-144x144.png
│ ├── android-icon-192x192.png
│ ├── android-icon-36x36.png
│ ├── android-icon-48x48.png
│ ├── android-icon-72x72.png
│ ├── android-icon-96x96.png
│ ├── apple-icon-114x114.png
│ ├── apple-icon-120x120.png
│ ├── apple-icon-144x144.png
│ ├── apple-icon-152x152.png
│ ├── apple-icon-180x180.png
│ ├── apple-icon-57x57.png
│ ├── apple-icon-60x60.png
│ ├── apple-icon-72x72.png
│ ├── apple-icon-76x76.png
│ ├── apple-icon-precomposed.png
│ ├── apple-icon.png
│ ├── browserconfig.xml
│ ├── favicon-16x16.png
│ ├── favicon-32x32.png
│ ├── favicon-96x96.png
│ ├── favicon.ico
│ ├── manifest.json
│ ├── ms-icon-144x144.png
│ ├── ms-icon-150x150.png
│ ├── ms-icon-310x310.png
│ └── ms-icon-70x70.png
└── index.html
├── src
├── App.js
├── App.test.js
├── ScrollToTop.js
├── assets
│ ├── 404-03.png
│ ├── Artboard 10.png
│ ├── Artboard 11.png
│ ├── Artboard 17.png
│ ├── Artboard 2-small.png
│ ├── Artboard 2.png
│ ├── Artboard 3-small.png
│ ├── Artboard 3.png
│ ├── Artboard 4-small.png
│ ├── Artboard 4.png
│ ├── Artboard 5.png
│ ├── Artboard 6.png
│ ├── Artboard 7.png
│ ├── Artboard 8.png
│ ├── Artboard 9.png
│ ├── blank image.png
│ ├── blank_picture.png
│ ├── communication_url.png
│ ├── edit-green.png
│ ├── edit-white.png
│ ├── edit.png
│ ├── error.png
│ ├── github-PR-icon.png
│ ├── github-issue-icon.png
│ ├── github_url.png
│ ├── green alert.png
│ ├── help-other.png
│ ├── help-team-disabled.png
│ ├── help-team.png
│ ├── landingImage.png
│ ├── links.png
│ ├── mockup_url.png
│ ├── notes_url.png
│ ├── placeholder image.png
│ ├── project_url.png
│ ├── red alert.png
│ ├── sad-face.png
│ ├── success.png
│ ├── team-icon.png
│ ├── tier badges-01.png
│ ├── tier badges-02.png
│ ├── tier badges-03.png
│ ├── workflow_url.png
│ └── yellow alert.png
├── components
│ ├── 404
│ │ ├── 404.jsx
│ │ └── 404.scss
│ ├── AllProjects
│ │ ├── AllProjects.scss
│ │ ├── components
│ │ │ ├── Project.jsx
│ │ │ └── Project.scss
│ │ ├── graphql
│ │ │ └── allProjectsQuery.js
│ │ └── index.jsx
│ ├── DynamicForm
│ │ ├── DynamicForm.scss
│ │ ├── UTC.data.js
│ │ ├── components
│ │ │ ├── DynamicFormContainer.jsx
│ │ │ ├── DynamicFormMaker
│ │ │ │ ├── QuestionComponents
│ │ │ │ │ ├── SkillSetter
│ │ │ │ │ │ ├── ItemTypes.js
│ │ │ │ │ │ ├── RenderChosenSkills.jsx
│ │ │ │ │ │ ├── RenderSkills.jsx
│ │ │ │ │ │ ├── SkillSetter.jsx
│ │ │ │ │ │ ├── SourceSkillCard.jsx
│ │ │ │ │ │ └── index.jsx
│ │ │ │ │ ├── checkbox.jsx
│ │ │ │ │ ├── checkbox_2_column.jsx
│ │ │ │ │ ├── date.jsx
│ │ │ │ │ ├── dropdown.jsx
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── multiple_text_input.jsx
│ │ │ │ │ ├── not_functional
│ │ │ │ │ │ ├── dropdown_multiple.jsx
│ │ │ │ │ │ └── radio_with_other_text_input.jsx
│ │ │ │ │ ├── radio.jsx
│ │ │ │ │ ├── team_progress_sentiment_buttons.jsx
│ │ │ │ │ ├── text.jsx
│ │ │ │ │ ├── textarea.jsx
│ │ │ │ │ ├── three_buttons.jsx
│ │ │ │ │ └── voyage_application_tier_select.jsx
│ │ │ │ └── index.js
│ │ │ ├── DynamicFormWrapper.jsx
│ │ │ ├── index.js
│ │ │ └── utilities.js
│ │ ├── dynamicFormQuery.js
│ │ ├── dynamicFormSubmitMutation.js
│ │ └── index.jsx
│ ├── Error
│ │ ├── Error.scss
│ │ ├── FormError.jsx
│ │ └── index.jsx
│ ├── FeedPortal
│ │ ├── FeedPortal.scss
│ │ ├── components
│ │ │ ├── ChinguCards.jsx
│ │ │ ├── ChinguCards.scss
│ │ │ ├── FeedItem.jsx
│ │ │ ├── FeedItem.scss
│ │ │ ├── GithubActivity.jsx
│ │ │ ├── GithubActivity.scss
│ │ │ ├── InfoComponents.jsx
│ │ │ ├── NewsFeed.jsx
│ │ │ ├── NewsfeedStandup.jsx
│ │ │ ├── NewsfeedStandup.scss
│ │ │ ├── NoNews.jsx
│ │ │ ├── NoNews.scss
│ │ │ ├── SideBar.jsx
│ │ │ ├── TeamCard.jsx
│ │ │ ├── TeamCard.scss
│ │ │ ├── TeamLinks.jsx
│ │ │ ├── index.js
│ │ │ └── newsfeedData.mock.js
│ │ ├── graphql
│ │ │ ├── newsfeedQuery.js
│ │ │ └── sidebarQuery.js
│ │ └── index.jsx
│ ├── Footer
│ │ ├── Footer.js
│ │ └── SubscribeForm.js
│ ├── Header
│ │ ├── Header.js
│ │ └── userBaseQuery.js
│ ├── HelpPage
│ │ ├── Help.scss
│ │ ├── help-qa.data.js
│ │ └── index.jsx
│ ├── Landing
│ │ ├── components
│ │ │ ├── CohortsBar.jsx
│ │ │ ├── LandingBar.jsx
│ │ │ ├── LandingBarWithIcons.jsx
│ │ │ ├── LandingBottom.jsx
│ │ │ ├── LandingProjects.jsx
│ │ │ ├── LandingTestimonial.jsx
│ │ │ ├── LandingTop.jsx
│ │ │ ├── landingBarItemsData.js
│ │ │ └── landingBarRenderers.js
│ │ └── index.jsx
│ ├── Loader
│ │ ├── Loader.scss
│ │ └── index.jsx
│ ├── Login
│ │ ├── Login.scss
│ │ ├── components
│ │ │ └── GithubLoginModal.jsx
│ │ └── index.jsx
│ ├── Pages
│ │ ├── ApplicationLanding.js
│ │ ├── CurrentPrograms.js
│ │ ├── FAQ.js
│ │ ├── PrivacyPolicy.js
│ │ ├── Staff.js
│ │ └── VoyageFive.js
│ ├── ProjectCard
│ │ ├── CohortProjectInfo.jsx
│ │ ├── ProjectCard.scss
│ │ ├── ProjectImage.jsx
│ │ ├── ProjectInfo.jsx
│ │ ├── TeamButtons.jsx
│ │ ├── TeamCard.scss
│ │ ├── TeamResourceLinks.jsx
│ │ └── index.jsx
│ ├── ProjectShowcase
│ │ ├── ProjectShowcase.scss
│ │ ├── components
│ │ │ ├── Banner.jsx
│ │ │ ├── EditProjectForm
│ │ │ │ └── index.jsx
│ │ │ ├── ExternalLinks.jsx
│ │ │ ├── HeroImage.jsx
│ │ │ ├── ImageEditModal
│ │ │ │ ├── ImagePreview.jsx
│ │ │ │ └── index.jsx
│ │ │ ├── ImageGallery
│ │ │ │ ├── FeaturedImage.jsx
│ │ │ │ ├── Thumbnail.jsx
│ │ │ │ ├── ThumbnailPanel.jsx
│ │ │ │ ├── Thumbnails.jsx
│ │ │ │ └── index.jsx
│ │ │ ├── ProjectDescription.jsx
│ │ │ ├── ProjectSideBar.jsx
│ │ │ └── Toolbar
│ │ │ │ └── index.jsx
│ │ ├── graphql
│ │ │ └── getProjectAndUser.js
│ │ └── index.jsx
│ ├── ProjectStandup
│ │ ├── ProjectStandup.scss
│ │ └── index.jsx
│ ├── Register
│ │ ├── Register.scss
│ │ └── index.jsx
│ ├── SkillsPicker
│ │ └── index.jsx
│ ├── Success
│ │ ├── Success.jsx
│ │ └── Success.scss
│ ├── Ticketbox
│ │ ├── Ticketbox.scss
│ │ ├── components
│ │ │ ├── BackBtn.jsx
│ │ │ ├── Feedback
│ │ │ │ ├── BugSuggestion.jsx
│ │ │ │ ├── BugSuggestionQA.js
│ │ │ │ └── index.js
│ │ │ ├── Help
│ │ │ │ ├── HelpOptions.jsx
│ │ │ │ ├── HelpPageSearch.jsx
│ │ │ │ ├── TeamHelp.jsx
│ │ │ │ ├── TeamHelpQA.js
│ │ │ │ └── index.jsx
│ │ │ ├── Success.jsx
│ │ │ └── TicketBoxError.jsx
│ │ └── index.jsx
│ ├── UserProfile
│ │ ├── ProjectCards
│ │ │ ├── CurrentVoyages.jsx
│ │ │ ├── InfoComponents.jsx
│ │ │ ├── NoTeamTypeCards.jsx
│ │ │ ├── PendingVoyages.jsx
│ │ │ └── ProjectCards.jsx
│ │ ├── UserInfo.jsx
│ │ ├── UserProfile.scss
│ │ ├── UserSideBar.jsx
│ │ ├── UserSideBar.scss
│ │ ├── components
│ │ │ ├── ChosenSkills.jsx
│ │ │ ├── UserAcquiredSkills
│ │ │ │ └── index.jsx
│ │ │ ├── UserDesiredSkills
│ │ │ │ ├── DesiredSkillPicker.scss
│ │ │ │ ├── DesiredSkillsPicker.jsx
│ │ │ │ └── index.jsx
│ │ │ ├── UserSkills.jsx
│ │ │ ├── index.jsx
│ │ │ └── timezoneOptions.js
│ │ ├── graphql
│ │ │ ├── profileQuery.js
│ │ │ └── skillsQuery.js
│ │ └── index.jsx
│ ├── VoyageApplication
│ │ ├── VoyageApplication.scss
│ │ └── index.jsx
│ ├── VoyageCard
│ │ ├── Action.js
│ │ ├── Badge.js
│ │ ├── CheckInDone.js
│ │ ├── Info.js
│ │ ├── Pending.js
│ │ ├── Title.js
│ │ ├── VoyageCard.js
│ │ ├── VoyageCard.scss
│ │ └── WeeklyCheckIn.js
│ ├── VoyagePortal
│ │ ├── VoyagePortal.scss
│ │ ├── graphql
│ │ │ └── voyagesQuery.js
│ │ └── index.jsx
│ ├── WeeklyCheckin
│ │ ├── WeeklyCheckin.scss
│ │ ├── graphql
│ │ │ └── mutation.js
│ │ ├── index.js
│ │ └── weeklyCheckin.data.js
│ ├── common
│ │ ├── Button.js
│ │ ├── EditButton.js
│ │ ├── EditButton.scss
│ │ └── Modal.js
│ └── utilities
│ │ ├── EditableTextField.jsx
│ │ ├── EditableTextField.scss
│ │ ├── PopupMenu.jsx
│ │ ├── PrivateRoute.jsx
│ │ ├── Request.jsx
│ │ ├── dateFormatter.js
│ │ ├── index.jsx
│ │ ├── introspectEnum.js
│ │ └── newsfeedDateFormatter.js
├── fragmentTypes.json
├── get_uri.js
├── index.js
├── mutations
│ ├── authMutation.js
│ ├── loginMutation.js
│ ├── registerUserMutation.js
│ └── updateUser.js
├── registerServiceWorker.js
├── static-api-elements
│ ├── companyFAQ.js
│ ├── contributorListing.js
│ ├── index.js
│ ├── programFAQ.js
│ └── staffListing.js
└── styles
│ ├── abstracts
│ ├── _functions.scss
│ ├── _mixins.scss
│ ├── _placeholders.scss
│ └── _variables.scss
│ ├── assets
│ ├── Periman.jpg
│ ├── bear8.jpg
│ ├── challenge--landing.png
│ ├── coment.PNG
│ ├── debasree.jpg
│ ├── earth--landing.png
│ ├── grow--landing.png
│ ├── landingImages.js
│ ├── pankaja.jpg
│ ├── patreon.png
│ ├── process-01.png
│ ├── process-02.png
│ ├── process-03.png
│ ├── process-04.png
│ ├── project-placeholder.png
│ ├── slack_key_gif.mp4
│ ├── slackkey.JPG
│ ├── sona.PNG
│ ├── staffImages
│ │ ├── chance.jpg
│ │ ├── francesca.jpg
│ │ ├── jim.jpg
│ │ ├── parminder.jpg
│ │ ├── sab.jpg
│ │ ├── staffImages.js
│ │ ├── vamp.jpg
│ │ └── van.jpg
│ ├── ticketybot.PNG
│ ├── tier-badges-01--landing.png
│ ├── tier-badges-02--landing.png
│ ├── tier-badges-03--landing.png
│ └── user-placeholder.png
│ ├── base
│ ├── _base.scss
│ ├── _fonts.scss
│ ├── _helpers.scss
│ └── _typography.scss
│ ├── components
│ ├── _button.scss
│ ├── _landing_icon_item.scss
│ ├── _landing_testimonial.scss
│ ├── _login_form.scss
│ ├── _login_form_item.scss
│ ├── _modal.scss
│ ├── _signup_form.scss
│ └── _signup_form_item.scss
│ ├── fontawesome
│ └── webfonts
│ │ ├── fa-brands-400.eot
│ │ ├── fa-brands-400.svg
│ │ ├── fa-brands-400.ttf
│ │ ├── fa-brands-400.woff
│ │ ├── fa-brands-400.woff2
│ │ ├── fa-regular-400.eot
│ │ ├── fa-regular-400.svg
│ │ ├── fa-regular-400.ttf
│ │ ├── fa-regular-400.woff
│ │ ├── fa-regular-400.woff2
│ │ ├── fa-solid-900.eot
│ │ ├── fa-solid-900.svg
│ │ ├── fa-solid-900.ttf
│ │ ├── fa-solid-900.woff
│ │ ├── fa-solid-900.woff2
│ │ └── fontawesome-all.css
│ ├── layout
│ ├── _basic-page.scss
│ ├── _footer.scss
│ └── _header.scss
│ ├── main.scss
│ ├── pages
│ ├── _contact_form.scss
│ ├── _current_programs.scss
│ ├── _dashboard.scss
│ ├── _faq.scss
│ ├── _landing.scss
│ ├── _login.scss
│ ├── _privacy_page.scss
│ ├── _profile.scss
│ ├── _signup.scss
│ ├── _slack.scss
│ ├── _staff.scss
│ └── _voyage_five.scss
│ └── vendors
│ ├── _include-media.scss
│ └── _normalize.scss
└── yarn.lock
/.firebaserc:
--------------------------------------------------------------------------------
1 | {
2 | "projects": {
3 | "default": "chingu-frontend"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 |
6 | # testing
7 | /coverage
8 |
9 | # production
10 | /build
11 |
12 | # generated files
13 | *.css
14 |
15 | # misc
16 | .DS_Store
17 | .env.local
18 | .env.development.local
19 | .env.test.local
20 | .env.production.local
21 |
22 | npm-debug.log*
23 | yarn-debug.log*
24 | yarn-error.log*
25 |
26 | .vs/
27 | *.sqlite
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "editor.tabSize": 2
3 | }
--------------------------------------------------------------------------------
/build_fragments.js:
--------------------------------------------------------------------------------
1 | const fetch = require('node-fetch');
2 | const fs = require('fs');
3 | const { uri } = require('./src/get_uri')
4 |
5 | fetch(uri, {
6 | method: 'POST',
7 | headers: { 'Content-Type': 'application/json' },
8 | body: JSON.stringify({
9 | variables: {},
10 | operationName: '',
11 | query: `
12 | {
13 | __schema {
14 | types {
15 | kind
16 | name
17 | possibleTypes {
18 | name
19 | }
20 | }
21 | }
22 | }
23 | `,
24 | }),
25 | })
26 | .then(result => result.json())
27 | .then(result => {
28 | // here we're filtering out any type information unrelated to unions or interfaces
29 | const filteredData = result.data.__schema.types.filter(
30 | type => type.possibleTypes !== null,
31 | );
32 | result.data.__schema.types = filteredData;
33 | fs.writeFile('./src/fragmentTypes.json', JSON.stringify(result.data), err => {
34 | if (err) {
35 | console.error('Error writing fragmentTypes file', err);
36 | } else {
37 | console.log('Fragment types successfully extracted!');
38 | }
39 | console.log({ uri })
40 | });
41 | });
--------------------------------------------------------------------------------
/dynamic_forms_templates/team_standup_qs.json:
--------------------------------------------------------------------------------
1 | mutation {
2 | one: questionCreate(
3 | input: {
4 | field_name:"standup_id"
5 | text:"Cohort Team Standup ID"
6 | input_type:hidden
7 | data_type:Number
8 | tags:[cohort, teamwork, identifier]
9 | }
10 | ) {
11 | id
12 | }
13 |
14 | two: questionCreate(
15 | input: {
16 | field_name:"progress_sentiment"
17 | text:"How would you describe your team's progress?"
18 | input_type:team_progress_sentiment_buttons
19 | options: [{text:"red"}, {text:"yellow"}, {text:"green"}]
20 | data_type:String
21 | tags:[cohort, teamwork]
22 | }
23 | ) {
24 | id
25 | }
26 |
27 | three: questionCreate(
28 | input: {
29 | field_name:"worked_on"
30 | text:"What have you worked on since the last standup?"
31 | input_type:textarea
32 | data_type:String
33 | tags:[cohort, teamwork]
34 | }
35 | ) {
36 | id
37 | }
38 |
39 | four: questionCreate(
40 | input: {
41 | field_name:"working_on"
42 | text:"What will you be working on until the next standup?"
43 | input_type:textarea
44 | data_type:String
45 | tags:[cohort, teamwork]
46 | }
47 | ) {
48 | id
49 | }
50 |
51 | five: questionCreate(
52 | input: {
53 | field_name:"blocked_on"
54 | text:"Is there anything blocking your progress?"
55 | input_type:textarea
56 | data_type:String
57 | tags:[cohort, teamwork]
58 | }
59 | ) {
60 | id
61 | }
62 | }
--------------------------------------------------------------------------------
/firebase.json:
--------------------------------------------------------------------------------
1 | {
2 | "hosting": {
3 | "public": "build",
4 | "ignore": [
5 | "firebase.json",
6 | "**/.*",
7 | "**/node_modules/**"
8 | ],
9 | "rewrites": [
10 | {
11 | "source": "**",
12 | "destination": "/index.html"
13 | }
14 | ]
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "chingu-frontend",
3 | "version": "0.1.0",
4 | "private": true,
5 | "dependencies": {
6 | "apollo-boost": "^0.1.10",
7 | "apollo-cache-inmemory": "^1.2.9",
8 | "babel-polyfill": "^6.26.0",
9 | "cross-env": "^5.2.0",
10 | "graphql": "^14.0.2",
11 | "graphql-tag": "^2.9.2",
12 | "lodash": "^4.17.10",
13 | "node-fetch": "^2.2.1",
14 | "node-sass-chokidar": "^1.3.0",
15 | "npm-run-all": "^4.1.3",
16 | "react": "^16.4.0",
17 | "react-apollo": "^2.1.9",
18 | "react-copy-to-clipboard": "^5.0.1",
19 | "react-dnd": "^5.0.0",
20 | "react-dnd-html5-backend": "^5.0.1",
21 | "react-dom": "^16.2.0",
22 | "react-markdown": "^3.4.1",
23 | "react-redux": "^5.0.7",
24 | "react-router-dom": "^4.2.2",
25 | "react-scripts": "^2.1.1",
26 | "react-select": "^2.1.0",
27 | "redux": "^3.7.2",
28 | "redux-form": "^7.2.3",
29 | "validator": "^10.7.0"
30 | },
31 | "scripts": {
32 | "build-css": "node-sass-chokidar src/ -o src/",
33 | "watch-css": "npm run build-css && node-sass-chokidar src/ -o src/ --watch --recursive",
34 | "start-js": "react-scripts start",
35 | "start": "cross-env NODE_PATH=src npm-run-all -p watch-css build-fragments start-js",
36 | "staging": "cross-env REACT_APP_API=staging npm run start",
37 | "local": "cross-env REACT_APP_API=local npm run start",
38 | "build-js": "react-scripts build",
39 | "build": "npm-run-all build-css build-fragments build-js; echo \"/* /index.html 200\" > build/_redirects",
40 | "test": "react-scripts test --env=jsdom",
41 | "eject": "react-scripts eject",
42 | "build-fragments": "node ./build_fragments.js"
43 | },
44 | "browserslist": [
45 | ">0.2%",
46 | "not dead",
47 | "not ie <= 11",
48 | "not op_mini all"
49 | ]
50 | }
51 |
--------------------------------------------------------------------------------
/public/favicon/android-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/android-icon-144x144.png
--------------------------------------------------------------------------------
/public/favicon/android-icon-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/android-icon-192x192.png
--------------------------------------------------------------------------------
/public/favicon/android-icon-36x36.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/android-icon-36x36.png
--------------------------------------------------------------------------------
/public/favicon/android-icon-48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/android-icon-48x48.png
--------------------------------------------------------------------------------
/public/favicon/android-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/android-icon-72x72.png
--------------------------------------------------------------------------------
/public/favicon/android-icon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/android-icon-96x96.png
--------------------------------------------------------------------------------
/public/favicon/apple-icon-114x114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/apple-icon-114x114.png
--------------------------------------------------------------------------------
/public/favicon/apple-icon-120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/apple-icon-120x120.png
--------------------------------------------------------------------------------
/public/favicon/apple-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/apple-icon-144x144.png
--------------------------------------------------------------------------------
/public/favicon/apple-icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/apple-icon-152x152.png
--------------------------------------------------------------------------------
/public/favicon/apple-icon-180x180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/apple-icon-180x180.png
--------------------------------------------------------------------------------
/public/favicon/apple-icon-57x57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/apple-icon-57x57.png
--------------------------------------------------------------------------------
/public/favicon/apple-icon-60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/apple-icon-60x60.png
--------------------------------------------------------------------------------
/public/favicon/apple-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/apple-icon-72x72.png
--------------------------------------------------------------------------------
/public/favicon/apple-icon-76x76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/apple-icon-76x76.png
--------------------------------------------------------------------------------
/public/favicon/apple-icon-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/apple-icon-precomposed.png
--------------------------------------------------------------------------------
/public/favicon/apple-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/apple-icon.png
--------------------------------------------------------------------------------
/public/favicon/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 | #ffffff
--------------------------------------------------------------------------------
/public/favicon/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/favicon-16x16.png
--------------------------------------------------------------------------------
/public/favicon/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/favicon-32x32.png
--------------------------------------------------------------------------------
/public/favicon/favicon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/favicon-96x96.png
--------------------------------------------------------------------------------
/public/favicon/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/favicon.ico
--------------------------------------------------------------------------------
/public/favicon/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Chingu Developers Network",
3 | "icons": [
4 | {
5 | "src": "\/android-icon-36x36.png",
6 | "sizes": "36x36",
7 | "type": "image\/png",
8 | "density": "0.75"
9 | },
10 | {
11 | "src": "\/android-icon-48x48.png",
12 | "sizes": "48x48",
13 | "type": "image\/png",
14 | "density": "1.0"
15 | },
16 | {
17 | "src": "\/android-icon-72x72.png",
18 | "sizes": "72x72",
19 | "type": "image\/png",
20 | "density": "1.5"
21 | },
22 | {
23 | "src": "\/android-icon-96x96.png",
24 | "sizes": "96x96",
25 | "type": "image\/png",
26 | "density": "2.0"
27 | },
28 | {
29 | "src": "\/android-icon-144x144.png",
30 | "sizes": "144x144",
31 | "type": "image\/png",
32 | "density": "3.0"
33 | },
34 | {
35 | "src": "\/android-icon-192x192.png",
36 | "sizes": "192x192",
37 | "type": "image\/png",
38 | "density": "4.0"
39 | }
40 | ],
41 | "start_url": "./index.html",
42 | "display": "standalone",
43 | "theme_color": "#000000",
44 | "background_color": "#ffffff"
45 | }
--------------------------------------------------------------------------------
/public/favicon/ms-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/ms-icon-144x144.png
--------------------------------------------------------------------------------
/public/favicon/ms-icon-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/ms-icon-150x150.png
--------------------------------------------------------------------------------
/public/favicon/ms-icon-310x310.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/ms-icon-310x310.png
--------------------------------------------------------------------------------
/public/favicon/ms-icon-70x70.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/public/favicon/ms-icon-70x70.png
--------------------------------------------------------------------------------
/src/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import App from './App';
4 |
5 | it('renders without crashing', () => {
6 | const div = document.createElement('div');
7 | ReactDOM.render(, div);
8 | ReactDOM.unmountComponentAtNode(div);
9 | });
10 |
--------------------------------------------------------------------------------
/src/ScrollToTop.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import { withRouter } from "react-router-dom";
3 |
4 | class ScrollToTop extends React.Component {
5 | componentDidUpdate(prevProps) {
6 | if (this.props.location !== prevProps.location) {
7 | window.scrollTo(0, 0);
8 | }
9 | }
10 |
11 | render() {
12 | return this.props.children;
13 | }
14 | }
15 |
16 | export default withRouter(ScrollToTop);
--------------------------------------------------------------------------------
/src/assets/404-03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/404-03.png
--------------------------------------------------------------------------------
/src/assets/Artboard 10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/Artboard 10.png
--------------------------------------------------------------------------------
/src/assets/Artboard 11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/Artboard 11.png
--------------------------------------------------------------------------------
/src/assets/Artboard 17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/Artboard 17.png
--------------------------------------------------------------------------------
/src/assets/Artboard 2-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/Artboard 2-small.png
--------------------------------------------------------------------------------
/src/assets/Artboard 2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/Artboard 2.png
--------------------------------------------------------------------------------
/src/assets/Artboard 3-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/Artboard 3-small.png
--------------------------------------------------------------------------------
/src/assets/Artboard 3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/Artboard 3.png
--------------------------------------------------------------------------------
/src/assets/Artboard 4-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/Artboard 4-small.png
--------------------------------------------------------------------------------
/src/assets/Artboard 4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/Artboard 4.png
--------------------------------------------------------------------------------
/src/assets/Artboard 5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/Artboard 5.png
--------------------------------------------------------------------------------
/src/assets/Artboard 6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/Artboard 6.png
--------------------------------------------------------------------------------
/src/assets/Artboard 7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/Artboard 7.png
--------------------------------------------------------------------------------
/src/assets/Artboard 8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/Artboard 8.png
--------------------------------------------------------------------------------
/src/assets/Artboard 9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/Artboard 9.png
--------------------------------------------------------------------------------
/src/assets/blank image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/blank image.png
--------------------------------------------------------------------------------
/src/assets/blank_picture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/blank_picture.png
--------------------------------------------------------------------------------
/src/assets/communication_url.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/communication_url.png
--------------------------------------------------------------------------------
/src/assets/edit-green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/edit-green.png
--------------------------------------------------------------------------------
/src/assets/edit-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/edit-white.png
--------------------------------------------------------------------------------
/src/assets/edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/edit.png
--------------------------------------------------------------------------------
/src/assets/error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/error.png
--------------------------------------------------------------------------------
/src/assets/github-PR-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/github-PR-icon.png
--------------------------------------------------------------------------------
/src/assets/github-issue-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/github-issue-icon.png
--------------------------------------------------------------------------------
/src/assets/github_url.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/github_url.png
--------------------------------------------------------------------------------
/src/assets/green alert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/green alert.png
--------------------------------------------------------------------------------
/src/assets/help-other.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/help-other.png
--------------------------------------------------------------------------------
/src/assets/help-team-disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/help-team-disabled.png
--------------------------------------------------------------------------------
/src/assets/help-team.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/help-team.png
--------------------------------------------------------------------------------
/src/assets/landingImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/landingImage.png
--------------------------------------------------------------------------------
/src/assets/links.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/links.png
--------------------------------------------------------------------------------
/src/assets/mockup_url.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/mockup_url.png
--------------------------------------------------------------------------------
/src/assets/notes_url.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/notes_url.png
--------------------------------------------------------------------------------
/src/assets/placeholder image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/placeholder image.png
--------------------------------------------------------------------------------
/src/assets/project_url.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/project_url.png
--------------------------------------------------------------------------------
/src/assets/red alert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/red alert.png
--------------------------------------------------------------------------------
/src/assets/sad-face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/sad-face.png
--------------------------------------------------------------------------------
/src/assets/success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/success.png
--------------------------------------------------------------------------------
/src/assets/team-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/team-icon.png
--------------------------------------------------------------------------------
/src/assets/tier badges-01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/tier badges-01.png
--------------------------------------------------------------------------------
/src/assets/tier badges-02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/tier badges-02.png
--------------------------------------------------------------------------------
/src/assets/tier badges-03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/tier badges-03.png
--------------------------------------------------------------------------------
/src/assets/workflow_url.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/workflow_url.png
--------------------------------------------------------------------------------
/src/assets/yellow alert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chingu-x/chingu-frontend/20efd444ea0716323cfe6278f472d7c63a0ce9f3/src/assets/yellow alert.png
--------------------------------------------------------------------------------
/src/components/404/404.jsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import { Link } from "react-router-dom"
3 | import './404.css';
4 |
5 | class Missing404Page extends React.Component {
6 | render() {
7 | return (
8 |
9 |
})
10 |
11 |
12 |
13 |
14 | );
15 | }
16 | }
17 |
18 | export default Missing404Page;
19 |
--------------------------------------------------------------------------------
/src/components/404/404.scss:
--------------------------------------------------------------------------------
1 | @import '../../styles/abstracts/_variables.scss';
2 |
3 | .p404-page-container {
4 | background-color: $light-grey;
5 | width: 100vw;
6 | height: 100vh;
7 | }
8 | .p404-image {
9 | width: 1080px;
10 | margin: 0 auto;
11 | object-fit: contain;
12 | display: block;
13 | top: 30vh;
14 | position: relative;
15 | }
16 | .p404-goBack-btn {
17 | border: none;
18 | color: white;
19 | background-color: $attention-red;
20 | padding: 25px;
21 | font-size: 25px;
22 | font-weight: 700;
23 | box-shadow: $box-shadow;
24 | text-transform: uppercase;
25 | text-align: center;
26 | display: block;
27 | position: relative;
28 | top: 30vh;
29 | margin: 0 auto;
30 | cursor: pointer;
31 | }
32 | @media (max-width: 1180px) {
33 | .p404-image {
34 | width: 80vw;
35 | }
36 | .p404-goBack-btn {
37 | font-size: 14px;
38 | padding: 10px;
39 | }
40 | }
--------------------------------------------------------------------------------
/src/components/AllProjects/AllProjects.scss:
--------------------------------------------------------------------------------
1 | @import '../../styles/abstracts/_variables.scss';
2 |
3 | .all-projects-container {
4 | max-width: $max-width;
5 | min-height: 100vh;
6 | padding: $page-padding;
7 | margin: 0 auto;
8 | }
9 |
10 | .all-projects-title {
11 | @include portal-title;
12 | margin-bottom: 60px;
13 | }
14 |
15 | .all-projects {
16 | display: grid;
17 | grid-template-columns: repeat(3, 1fr);
18 | grid-gap: 20px;
19 | align-items: center;
20 | justify-items: center;
21 | margin-bottom: 100px;
22 | }
--------------------------------------------------------------------------------
/src/components/AllProjects/components/Project.jsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import './Project.css';
3 | import { Link } from "react-router-dom";
4 |
5 | const Project = ({ project: { id, images, title, elevator_pitch } }) => {
6 | return (
7 |
8 |
14 |
15 |
{title}
16 |
{elevator_pitch}
17 |
18 |
19 | );
20 | }
21 |
22 | export default Project;
23 |
24 | // {
25 | // techStack.map((techStack, index) => {
26 | // return (
27 | // {techStack}
28 | // )
29 | // })
30 | // }
--------------------------------------------------------------------------------
/src/components/AllProjects/components/Project.scss:
--------------------------------------------------------------------------------
1 | @import '../../../styles/abstracts/_variables.scss';
2 |
3 | .project {
4 | width: 100%;
5 | box-shadow: $box-shadow;
6 | color: $dark-grey;
7 | }
8 | .project-image {
9 | height: 250px;
10 | width: 320px;
11 | object-fit: cover;
12 | border: 1px solid $light-grey;
13 | }
14 |
15 | .project-info {
16 | background-color: white;
17 | padding: 10px;
18 | border: 1px solid $lighter-grey;
19 | margin-top: -7px;
20 | min-height: 120px;
21 | }
22 |
23 | .project-title {
24 | text-align: left;
25 | font-size: 14px;
26 | font-weight: 600;
27 | margin-bottom: 5px;
28 | }
29 |
30 | .project-description {
31 | font-size: 14px;
32 | }
--------------------------------------------------------------------------------
/src/components/AllProjects/graphql/allProjectsQuery.js:
--------------------------------------------------------------------------------
1 | import { gql } from "apollo-boost"
2 |
3 | const allProjectsQuery = gql`
4 | query allProjects {
5 | projects(limit: 20) {
6 | id
7 | title
8 | elevator_pitch
9 | }
10 | }
11 | `
12 |
13 |
14 | // images(only_main:true) {
15 | // id
16 | // order
17 | // url
18 | // }
19 |
20 | export default allProjectsQuery
--------------------------------------------------------------------------------
/src/components/AllProjects/index.jsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import allProjectsQuery from './graphql/allProjectsQuery';
3 | import Request from "../utilities/Request";
4 | import Project from './components/Project';
5 | import './AllProjects.css';
6 |
7 | class AllProjects extends React.Component {
8 | state = {
9 | projects: null
10 | }
11 |
12 | componentDidMount() {
13 | const { projects } = this.props.data;
14 | this.setState({ projects })
15 | }
16 |
17 | renderProjects = () => {
18 | const { projects } = this.state;
19 | return projects.map((project, idx) => {
20 | return
21 | })
22 | }
23 |
24 | render() {
25 | let { projects } = this.state;
26 | return (
27 |
28 |
All Projects
29 |
{projects && this.renderProjects()}
30 |
31 | )
32 | }
33 | }
34 |
35 | export default props => (
36 | )
42 |
--------------------------------------------------------------------------------
/src/components/DynamicForm/UTC.data.js:
--------------------------------------------------------------------------------
1 | const UTC = [
2 | 'UTC -12',
3 | 'UTC -11',
4 | 'UTC -10',
5 | 'UTC -9',
6 | 'UTC -9:30',
7 | 'UTC -9',
8 | 'UTC -8 (ex, California)',
9 | 'UTC -7 (ex, Colorado)',
10 | 'UTC -6 (ex, Texas)',
11 | 'UTC -5 (ex, New York)',
12 | 'UTC -4',
13 | 'UTC -3',
14 | 'UTC -2',
15 | 'UTC -1',
16 | 'UTC 0 (ex, Ireland)',
17 | 'UTC +1 (ex, Denmark)',
18 | 'UTC +2 (ex, Greece)',
19 | 'UTC +3',
20 | 'UTC +4',
21 | 'UTC +4:30',
22 | 'UTC +5',
23 | 'UTC +5:30 (ex, India)',
24 | 'UTC +6',
25 | 'UTC +6:30',
26 | 'UTC +7 (ex, Thailand)',
27 | 'UTC +8 (ex, China)',
28 | 'UTC +9 (ex, Japan)',
29 | 'UTC +10',
30 | 'UTC +11',
31 | 'UTC +12',
32 | 'UTC +13',
33 | 'UTC +14',
34 | ]
35 |
36 | export default UTC;
--------------------------------------------------------------------------------
/src/components/DynamicForm/components/DynamicFormMaker/QuestionComponents/SkillSetter/ItemTypes.js:
--------------------------------------------------------------------------------
1 | export const ItemTypes = {
2 | SKILL_CARD: 'skill-card'
3 | }
--------------------------------------------------------------------------------
/src/components/DynamicForm/components/DynamicFormMaker/QuestionComponents/SkillSetter/RenderChosenSkills.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import PropTypes from 'prop-types';
3 | import SourceSkillCard from './SourceSkillCard';
4 | import { ItemTypes } from './ItemTypes';
5 | import { DropTarget } from 'react-dnd';
6 |
7 | const skillTarget = {
8 | drop(props, monitor) {
9 | return {
10 | position: props.position,
11 | skill: monitor.getItem().skillId,
12 | addSkillHandler: props.addSkillHandler
13 | }
14 | }
15 | }
16 |
17 | function collect(connect, monitor) {
18 | return {
19 | connectDropTarget: connect.dropTarget(),
20 | isOver: monitor.isOver()
21 | }
22 | }
23 |
24 | const RenderChosenSkills = ({ SKILL, connectDropTarget, isOver, position }) => {
25 | return connectDropTarget(
26 |
27 |
{position + 1}
28 | {
29 | SKILL && SKILL.id &&
30 | }
31 |
32 | )
33 | }
34 |
35 | RenderChosenSkills.propTypes = {
36 | connectDropTarget: PropTypes.func.isRequired,
37 | isOver: PropTypes.bool.isRequired
38 | };
39 |
40 | export default DropTarget(ItemTypes.SKILL_CARD, skillTarget, collect)(RenderChosenSkills);
--------------------------------------------------------------------------------
/src/components/DynamicForm/components/DynamicFormMaker/QuestionComponents/SkillSetter/RenderSkills.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import SourceSkillCard from './SourceSkillCard';
3 | import { ItemTypes } from './ItemTypes';
4 | import { DropTarget } from 'react-dnd';
5 |
6 | const skillTarget = {
7 | drop(props, monitor) {
8 | return {
9 | skill: monitor.getItem().skillId,
10 | removeSkillHandler: props.removeSkillHandler
11 | }
12 | }
13 | }
14 |
15 | function collect(connect, monitor) {
16 | return {
17 | connectDropTarget: connect.dropTarget(),
18 | isOver: monitor.isOver()
19 | }
20 | }
21 |
22 | const RenderSkills = ({ SKILL_ARRAY, connectDropTarget }) => {
23 | if (!SKILL_ARRAY.length) return null
24 | return connectDropTarget(
25 |
26 |
{SKILL_ARRAY[0].category}
27 | {
28 | SKILL_ARRAY.map((skill, idx) => {
29 | return
30 | })
31 | }
32 |
33 | )
34 | }
35 |
36 | export default DropTarget(ItemTypes.SKILL_CARD, skillTarget, collect)(RenderSkills);
--------------------------------------------------------------------------------
/src/components/DynamicForm/components/DynamicFormMaker/QuestionComponents/SkillSetter/SourceSkillCard.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import PropTypes from 'prop-types';
3 | import { ItemTypes } from './ItemTypes';
4 | import { DragSource } from 'react-dnd';
5 |
6 | const skillSource = {
7 | beginDrag(props) {
8 | return {
9 | skillId: props.skill
10 | }
11 | },
12 | endDrag(props, monitor, component) {
13 | let results = monitor.getDropResult();
14 | if (!results) {
15 | // dragged outside of targetSources
16 | // do nothing
17 | return;
18 | } else if (results.addSkillHandler) {
19 | let { addSkillHandler, position, skill } = results;
20 | return addSkillHandler(position, skill);
21 | } else if (results.removeSkillHandler) {
22 | let { removeSkillHandler, skill } = results;
23 | return removeSkillHandler(skill)
24 | }
25 | }
26 | }
27 |
28 | function collect(connect, monitor) {
29 | return {
30 | connectDragSource: connect.dragSource(),
31 | isDragging: monitor.isDragging()
32 | }
33 | }
34 |
35 | const SourceSkillCard = ({ skill, connectDragSource, isDragging, chosen }) => {
36 | return connectDragSource(
37 |
41 | {skill.name}
42 |
43 | )
44 | }
45 |
46 | SourceSkillCard.propTypes = {
47 | connectDragSource: PropTypes.func.isRequired,
48 | isDragging: PropTypes.bool.isRequired
49 | }
50 |
51 | export default DragSource(ItemTypes.SKILL_CARD, skillSource, collect)(SourceSkillCard);
--------------------------------------------------------------------------------
/src/components/DynamicForm/components/DynamicFormMaker/QuestionComponents/SkillSetter/index.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import SkillSetter from './SkillSetter';
3 |
4 | const skill_setter = (data, onFormChange, form_data) => {
5 | return (
6 |
7 | )
8 | }
9 |
10 | export default skill_setter;
11 |
--------------------------------------------------------------------------------
/src/components/DynamicForm/components/DynamicFormMaker/QuestionComponents/checkbox.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | const CheckboxComponent = (
4 | {
5 | answer,
6 | field_name,
7 | index,
8 | onFormChange,
9 | form_data,
10 | minlength,
11 | maxlength,
12 | },
13 | ) => {
14 | const value = form_data[field_name];
15 | return (
16 |
17 |
33 |
34 | );
35 | }
36 |
37 | export { CheckboxComponent };
38 |
39 | // maps over options array creating Checkbox components
40 | export default (
41 | { field_name, options, minlength, maxlength },
42 | onFormChange,
43 | form_data,
44 | ) => options.map(
45 | (answer, index) => (
46 |
56 | ),
57 | );
58 |
--------------------------------------------------------------------------------
/src/components/DynamicForm/components/DynamicFormMaker/QuestionComponents/checkbox_2_column.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | import { CheckboxComponent } from "./checkbox";
4 |
5 | export default (
6 | { field_name, options, minlength, maxlength },
7 | onFormChange,
8 | form_data,
9 | ) => {
10 | // TODO: refactor to map over options directly
11 | const firstHalf = [];
12 | const secondHalf = [];
13 | for (var i = 0; i < (options).length; i++) {
14 | if (i < (options).length / 2) {
15 | firstHalf.push(options[i]);
16 | } else {
17 | secondHalf.push(options[i]);
18 | }
19 | }
20 |
21 | return (
22 |
23 |
24 | {
25 | firstHalf.map(
26 | (answer, index) => (
27 |
37 | ),
38 | )
39 | }
40 |
41 |
42 | {
43 | secondHalf.map(
44 | (answer, index) => (
45 |
55 | ),
56 | )
57 | }
58 |
59 |
60 | )
61 | }
--------------------------------------------------------------------------------
/src/components/DynamicForm/components/DynamicFormMaker/QuestionComponents/date.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | export default (
4 | { input_type, field_name, minlength, maxlength },
5 | onFormChange,
6 | form_data,
7 | ) => (
8 | onFormChange(
15 | { currentTarget, min: minlength, max: maxlength }
16 | )
17 | }
18 | />
19 | );
20 |
--------------------------------------------------------------------------------
/src/components/DynamicForm/components/DynamicFormMaker/QuestionComponents/dropdown.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import Select from "react-select";
3 |
4 | const dropdown = (
5 | { field_name, input_type, options },
6 | onFormChange,
7 | form_data,
8 | ) => {
9 | // map to React-Select option format
10 | const mappedOptions = options.map(({ text, value }) => ({ label: text, value }));
11 | const value = form_data[field_name];
12 | // React-Select wants {label, value} for value prop
13 | // have to find corresponding label for the chosen value to render properly
14 | const option = mappedOptions.find(el => el.value === value);
15 | const label = option ? option.label : '';
16 | return (
17 |