jiebi/CodeConvo huggingface dataset:
Change:
<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Describe your problem and how to reproduce it: The instruction of challenge only tells user what they need to do, but not what their code should return. User would need to scroll down to see what the tests expect, in order to complete the challenge. Add a Link to the page with the problem:

Discussion:
## Instructions <section id='instructions'> <del> Use multiple <code>conditional operators</code> in the <code>checkSign</code> function to check if a number is positive, negative or zero. </del> <ins> Use multiple <code>conditional operators</code> in the <code>checkSign</code> function to check if a number is positive, negative or zero. The function should return "positive", "negative" or "zero". </ins> </section> ## Tests
Change:
Describe the bug When you go to a challenge and the donation modal appears a stack overflow error occurs To Reproduce Steps to reproduce the behavior: Chrome go to on the dev console error Screenshots ! Desktop (please complete the following information): OS: Ubuntu Browser Chrome Version 76.0.3809.100 (Official Build) (64-bit) Additional context Removing removes it, so presumably it's a clash between that and the modal.
You are correct, I think there could be a race condition between the two.

Discussion:
import { createSelector } from 'reselect'; import { executeChallenge, updateFile } from '../redux'; <del> import { userSelector } from '../../../redux'; </del> <ins> import { userSelector, isDonationModalOpenSelector } from '../../../redux'; </ins> import { Loader } from '../../../components/helpers'; const MonacoEditor = React.lazy(() => import('react-monaco-editor')); const propTypes = { <ins> canFocus: PropTypes.bool, </ins> contents: PropTypes.string, dimensions: PropTypes.object, executeChallenge: PropTypes.func.isRequired,

}; const mapStateToProps = createSelector( <ins> isDonationModalOpenSelector, </ins> userSelector, <del> ({ theme = 'night' }) => ({ theme }) </del> <ins> (open, { theme = 'night' }) => ({ canFocus: !open, theme }) </ins> ); const mapDispatchToProps = dispatch =>

editorDidMount = (editor, monaco) => { this._editor = editor; <del> this._editor.focus(); </del> <ins> if (this.props.canFocus) this._editor.focus(); </ins> this._editor.addAction({ id: 'execute-challenge', label: 'Run tests',
Change:
Currently the map looks like this: ! I think it would look a lot better if we made more use of the available space. Something like this: !
I can fix the css in a separate PR, if you like. Unless you're already handling it, of course.
I think it is handled now in the PR already. I moved things into the Grid system
That PR still has the heavy indentation: !
You are correct, if you have something going please go ahead and push to the PR. I am done with the basic consolidation of the views that I was going for.

Discussion:
function createSuperBlockTitle(str) { return codingPrepRE.test(str) ? `${str} (Thousands of hours of challenges)` <del> : `${str} Certification (300 hours)`; </del> <ins> : `${str} Certification (300xa0hours)`; </ins> } export class SuperBlock extends Component {

.find('.map-title') .find('h4') .text() <del> ).toBe('Super Block One Certification (300 hours)'); </del> <ins> ).toBe('Super Block One Certification (300xa0hours)'); </ins> expect(enzymeWrapper.find('ul').length).toBe(0); enzymeWrapper.find('.map-title').simulate('click');

.find('.map-title') .find('h4') .text() <del> ).toBe('Super Block One Certification (300 hours)'); </del> <ins> ).toBe('Super Block One Certification (300xa0hours)'); </ins> expect(enzymeWrapper.find('ul').length).toBe(1); });

> <Caret /> <h4> <del> Super Block One Certification (300 hours) </del> <ins> Super Block One Certification (300 hours) </ins> </h4> </button> <ul>

> <Caret /> <h4> <del> Super Block One Certification (300 hours) </del> <ins> Super Block One Certification (300 hours) </ins> </h4> </button> </li>

padding-bottom: 18px; background: transparent; border: none; <ins> text-align: left; </ins> } button.map-title:hover {

} .map-challenge-title { <ins> display: flex; </ins> margin-bottom: 0.25rem; <del> max-width: calc(100% - 80px); </del> <ins> max-width: calc(100% - 105px); } @media (max-width: 640px) { .map-ui .block ul { padding-inline-start: 6px; font-size: 0.9rem; } button.map-title { width: 100%; } .map-ui ul { padding-inline-start: 15px; } .map-ui > ul { padding-inline-start: 0; } .map-challenge-title { max-width: 100%; } .map-title-completed { flex-shrink: 0; padding-left: 15px; } </ins> } .block a { text-decoration: none; } <ins> /* 14px is the width of the expansion arrow */ .superblock { max-width: calc(100% - 14px); } </ins>
Change:
This wasn't always the case, but right now the formatting for smaller screens isn't great: ! Smaller screens used to have tabs letting you switch between the instructions, editor and so on. You can see them briefly (in the gif) at medium screen sizes, but not for mobile. If we still want to support this, I can look into restoring it.
Looks like they're just hidden behind the search bar.
Thanks for reporting this, we are still figuring out the final state for the nav. Once that is settled, this issue will be resolved automatically.
This wasn't entirely resolved by , as the challenge tabs are still displaying incorrectly: !

Discussion:
id='challenge-page-tabs' onSelect={moveToTab} > <del> <TabPane eventKey={1} title='Instructions'> </del> <ins> <TabPane eventKey={1} title='Info'> </ins> {instructions} </TabPane> <TabPane eventKey={2} title='Code' {...editorTabPaneProps}>

#challenge-page-tabs .nav-tabs > li > a { padding: 5px 10px; <ins> text-decoration: none; font-size: 0.8em; </ins> } #challenge-page-tabs .tab-content {

height: 100%; overflow: hidden; } <del> #challenge-page-tabs a { text-decoration: none; } #challenge-page-tabs a:hover { color: var(--secondary-background); </del> <ins> #challenge-page-tabs .nav-tabs > li.active > a { color: var(--quaternary-color); background-color: var(--quaternary-background); </ins> }

.tool-panel-group-mobile button, .tool-panel-group-mobile a { <del> font-size: 16px; </del> <ins> font-size: 0.8rem; </ins> } .tool-panel-group-mobile {

.tool-panel-group-mobile .btn-block + .btn-block { margin: 0 2px 0 0; <ins> padding-left: 8px; padding-right: 8px; </ins> }
Change:
Describe your problem and how to reproduce it: We were in the middle of a meetup that was oriented at beginners, and a camper that was doing this challenge asked me: what does do? I feel like it works exactly as I showed them that it kept the element in place when the page scrolled. The description says it One key difference between the and positions is that an element with a fixed position won't move when the user scrolls. However, it doesn't provide a visible example where the user can scroll and see that for themselves. Add text and styles to invite campers to scroll the content and see how differs from . Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Google Chrome Browser Version: Version 77.0.3865.90 Operating System: Elementary OS Loki 0.4.1 If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): ! As you can see, the content isn't scrollable

Discussion:
## Instructions <section id='instructions'> <del> The navigation bar in the code is labeled with an id of <code>navbar</code>. Change its <code>position</code> to <code>fixed</code>, and offset it 0 pixels from the <code>top</code> and 0 pixels from the <code>left</code>. Notice the (lack of) impact to the <code>h1</code> position, it hasn't been pushed down to accommodate the navigation bar and would need to be adjusted separately. </del> <ins> The navigation bar in the code is labeled with an id of <code>navbar</code>. Change its <code>position</code> to <code>fixed</code>, and offset it 0 pixels from the <code>top</code> and 0 pixels from the <code>left</code>. After you have added the code, scroll the preview window to see how the navigation stays in place. </ins> </section> ## Tests

```html <style> <ins> body { min-height: 150vh; } </ins> #navbar {

```html <style> <ins> body { min-height: 150vh; } </ins> #navbar { position: fixed; top: 0;
Change:
The Portfolio button in the nav only takes me to my locked down profile. The settings button should be available on the user profile even when my profile is private and I am signed in. ! Edit raisedadead: We probably missed this while adding tests. Anyone interested can would be awesome if you could add tests while fixing this.
The settings button should be displayed here regardless of privacy settings.
You beat me to this, I opened without looking at the tracker.
Hi guys. I want to get and fix that issue.

Discussion:
return <CurrentChallengeLink>Take me to the Challenges</CurrentChallengeLink>; } <del> function renderIsLocked(username) { </del> <ins> function renderIsLocked(username, isSessionUser) { </ins> return ( <Fragment> <Helmet>

</Helmet> <Spacer size={2} /> <Grid> <ins> {isSessionUser ? renderSettingsButton() : null} </ins> <FullWidthRow> <h2 className='text-center'> {username} has not made their profile public.

} = user; if (isLocked) { <del> return renderIsLocked(username); </del> <ins> return renderIsLocked(username, isSessionUser); </ins> } return ( <Fragment>
Change:
Describe the bug Because the log calls and that returns , just outputs an empty line. This is in contrast to which outputs . To Reproduce Steps to reproduce the behavior: to into the editor. the tests Expected behavior

Discussion:
const oldLog = self.console.log.bind(self.console); self.console.log = function proxyConsole(...args) { <del> logs.push(args.map(arg => JSON.stringify(arg)).join(' ')); </del> <ins> logs.push(args.map(arg => '' + JSON.stringify(arg)).join(' ')); </ins> if (logs.join('n').length > MAX_LOGS_SIZE) { flushLogs(); }

const buildProxyConsole = proxyLogger => ctx => { const oldLog = ctx.window.console.log.bind(ctx.window.console); ctx.window.console.log = function proxyConsole(...args) { <del> proxyLogger(args.map(arg => JSON.stringify(arg)).join(' ')); </del> <ins> proxyLogger(args.map(arg => '' + JSON.stringify(arg)).join(' ')); </ins> return oldLog(...args); }; return ctx;
Change:
Is your feature request related to a problem? Please describe. Without Algolia keys a contributor cannot use the search feature on their local machine, limiting their ability to contribute in this area. Describe the solution you'd like The documentation should include instructions on how to get keys or set up a 'mock' search:
For me, I think very few people would work on the search itself. So, we would be okay to getting asked for developer keys on a need basis. And as for everyone else, will it be possible to render a message like "search is not available during dev" in the dropdown? /cc
I wouldn't mind having a public API key and app ID available in case someone wants to work on the search components or tests. We have a dev app available on Algolia that I can set up with the News index. I believe there's a limit on 50,000 operations a month for dev apps, which should be enough for anyone who wants to work on the search. If we hit the limit Algolia should just return an error for the rest of the month.

Discussion:
ROLLBAR_CLIENT_ID='post_client_id from rollbar dashboard' ALGOLIA_ADMIN_KEY=123abc <del> ALGOLIA_APP_ID='Algolia app id from dashboard' ALGOLIA_API_KEY='Algolia api key from dashboard' </del> <ins> ALGOLIA_APP_ID=X5V7KWJ4RB ALGOLIA_API_KEY=a45d2b80c97479bbda5cf5c55914230f </ins> AUTH0_CLIENT_ID=stuff AUTH0_CLIENT_SECRET=stuff
Change:
Describe the bug Entering 'n' or 'p' in the solution URL of projects takes me back to the previous('p') or next('n') challenge. To Reproduce to any project section where URL is required 'n' or 'p' in the URL field Expected behavior This should only happen when the text field is not in focus. Desktop (please complete the following information): OS: Windows 10 Pro 32 Bit Pro Browser: Chrome Version: 77.0.3865.90

Discussion:
import { bindActionCreators } from 'redux'; import { createSelector } from 'reselect'; import { SearchBox } from 'react-instantsearch-dom'; <del> import { HotKeys, configure } from 'react-hotkeys'; </del> <ins> import { HotKeys, ObserveKeys } from 'react-hotkeys'; </ins> import { isEqual } from 'lodash'; import {

import './searchbar-base.css'; import './searchbar.css'; <del> // Configure react-hotkeys to work with the searchbar configure({ ignoreTags: ['select', 'textarea'] }); </del> const propTypes = { innerRef: PropTypes.object, isDropdownEnabled: PropTypes.bool,

<label className='fcc_sr_only' htmlFor='fcc_instantsearch'> Search </label> <del> <SearchBox focusShortcuts={[83, 191]} onChange={this.handleChange} onFocus={this.handleFocus} onSubmit={this.handleSearch} showLoadingIndicator={true} translations={{ placeholder }} /> </del> <ins> <ObserveKeys> <SearchBox focusShortcuts={[83, 191]} onChange={this.handleChange} onFocus={this.handleFocus} onSubmit={this.handleSearch} showLoadingIndicator={true} translations={{ placeholder }} /> </ObserveKeys> </ins> {isDropdownEnabled && isSearchFocused && ( <SearchHits handleHits={this.handleHits}
Change:
<img width="927" alt="Settings_freeCodeCamp_org" src="https://user-"

Discussion:
{ type: 'info', message: dedent` <del> ${username} has chosen to make their profile private. They will need to make their profile public </del> <ins> ${username} has chosen to make their portfolio private. They will need to make their portfolio public </ins> in order for others to be able to view their certification. ` }

return ( <Fragment> <Helmet> <del> <title>Report a users profile | freeCodeCamp.org</title> </del> <ins> <title>Report a users portfolio | freeCodeCamp.org</title> </ins> </Helmet> <Spacer size={2} /> <Row className='text-center'> <Col sm={8} smOffset={2} xs={12}> <h2> Do you want to report {username} <del> 's profile for abuse? </del> <ins> 's portfolio for abuse? </ins> </h2> </Col> </Row>

return isSessionUser ? ( <Fragment> <FullWidthRow> <del> <h2 className='text-center'>You have not made your profile public.</h2> </del> <ins> <h2 className='text-center'> You have not made your portfolio public. </h2> </ins> </FullWidthRow> <FullWidthRow> <p className='alert alert-info'> <del> You need to change your privacy setting in order for your profile to be seen by others. This is a preview of how your profile will look </del> <ins> You need to change your privacy setting in order for your portfolio to be seen by others. This is a preview of how your portfolio will look </ins> when made public. </p> </FullWidthRow>

<Fragment> <FullWidthRow> <h2 className='text-center'> <del> {username} has not made their profile public. </del> <ins> {username} has not made their portfolio public. </ins> </h2> </FullWidthRow> <FullWidthRow> <p className='alert alert-info'> {username} needs to change their privacy setting in order for you to <del> view their profile. </del> <ins> view their portfolio. </ins> </p> </FullWidthRow> <Spacer />

return ( <Fragment> <p key={1}> <del> Before we issue our verified certification to a camper, he or she must accept our Academic Honesty Pledge, which reads: </del> <ins> Before you can claim a verified certification, you must accept our Academic Honesty Pledge, which reads: </ins> </p> <p key={2}> "I understand that plagiarism means copying someone else’s work and

"Aside from using open source libraries such as jQuery and Bootstrap, and short snippets of code which are clearly attributed to their original author, 100% of the code in my projects was written by me, or <del> along with another camper with whom I was pair programming in real time." </del> <ins> along with another person going through the freeCodeCamp curriculum with whom I was pair programming in real time." </ins> </p> <p key={5}> "I pledge that I did not plagiarize any of my freeCodeCamp.org work. I

</p> <p key={6}> In the situations where we discover instances of unambiguous plagiarism, <del> we will replace the camper in question’s certification with a message </del> <ins> we will replace the person in question’s certification with a message </ins> that "Upon review, this account has been flagged for academic dishonesty." </p>
Change:
<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Describe your problem and how to reproduce it: Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Browser Version: Operating System: If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box):

Discussion:
#learn-app-wrapper .reflex-container.horizontal > .reflex-splitter { height: 5px; } <ins> #description p, #instructions p { font-family: 'Lato', sans-serif; } </ins>

.honesty-panel p { margin-left: 10px; margin-right: 10px; <ins> font-family: 'Lato', sans-serif; </ins> } .honesty-panel {

margin-top: 1.45rem; } <ins> .intro-layout p, .intro-layout li { font-family: 'Lato', sans-serif; } </ins> .intro-toc .list-group-item { margin: 5px auto; }
Change:
Describe the bug Some of the input boxes (Email Settings and Your Internet Presence at least) get the old green border when valid inputs are entered. To Reproduce Steps to reproduce the behavior: to down to 'Your Internet Presence' below 'Twitter' on something else to remove focus the green border. Expected behavior The border should fit with the current colour scheme. Screenshots !
Hey there! I could handle this! :slightlysmilingface:
Thanks Feel free to submit a PR when you're ready.
Hi I had tested this on all input boxes in setting page. Affected input are only in Email Settings and Internet Presence like you described. The green border is caused by Bootstrap default class . I also had overridden color changes caused by another Bootstrap default classes which is and . The focus state was actually also affected but it is harder to see because the border became dark green (which is quite hard to distinguish with dark gray in general). I had fixed that too. I had tested my fix both on day and night mode. In night mode, border color on normal and focus state is hard to see but it should be correct with and . I am also sure that accessibility is not negatively affected even though there are no longer border color changes, because the input label is still able to change color correctly based on previous validation result classes
I tried out your PR and it looks great! Before we go ahead with that I would like your thoughts on a couple of things. Firstly, are you getting the appropriate error and warning classes applied? Testing locally I don't seem to be. Secondly, what do you think about inverting the input boxes in night mode? i.e. dark background + light text to fit in with the rest of the aesthetic.
Thanks for testing it :) I realized about those two points you mentioned when I was working with this issue, I intended to create several new issues about it and another accessibility issue. Yes the client validation for email settings and internet presence is all over the place and need some improvements. Border color for focus state on input boxes with night mode is also hard to see. Inverting some colors looks like a good idea. Now that this issue is already closed, let's move the discussion to new issues. I will mention you when it have been created.

Discussion:
color: var(--danger-color); } <ins> .has-error .form-control, .has-warning .form-control, .has-success .form-control { border-color: var(--quaternary-background); } .has-error .form-control:focus, .has-warning .form-control:focus, .has-success .form-control:focus { border-color: var(--tertiary-color); } </ins> .panel-primary { border-color: var(--primary-color); }
Change:
Describe the bug The 'Show other ways to donate' button looks like a link until you click on it, when it looks like a button. To Reproduce Steps to reproduce the behavior: to /donate on 'Show other ways to donate' : ! Expected behavior I think it should always look like a button, since clicking on it modifies the page rather than takes you to a new one.
I'll look into this.
Thanks If you could check with Ahmad as to what he wants here before submitting a PR (since he's worked on the formatting very recently), that would be great. I suspect he's a little busy right now, though, so I just put this issue here to keep track of it.
Yeap. I'll talk to him after a day or two.
Please assign this to me if possible.
i see your concern with consistency, and this button looks like a link by design. The behaviour is caused by the :focus state of the button. thanks for your interest. we could make the button behave identical to a link by targeting :hover and :focus:hover styles. Let's agree on the solution before the implementation. on a second thought this might not even be an issue. before the users click on the button, it looks like a link so they are not distracted from the main task. but when users click on it, the focus state keeps the button more visible. what do you think?
The other ways to donate should be an actual link and styled as such not a button.
if you are still interested in working on this issue, could please go ahead with replacing the 'Show other ways to donate' button with an actual link with onClick={this.toggleOtherOptions}.
Thanks! Going straight away to fix it.

Discussion:
background-image: none; box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.3); } <del> .btn-link { </del> <ins> .btn-link, .btn-link:focus, .btn-link:active { </ins> color: inherit; border: none; text-decoration: underline; background: transparent; <ins> padding: 0; outline: 0; </ins> } <del> .btn-link:hover { </del> <ins> .btn-link:hover, .btn-link:focus:active { </ins> background: var(--tertiary-background); text-decoration: none; color: inherit;