Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added ability to customize html-static-task-example submit button #879

Merged
merged 8 commits into from
Aug 3, 2022
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -98,11 +98,26 @@ function MainApp() {

function SubmitFrame({ children, onSubmit, currentTask }) {
const [submitting, setSubmitting] = React.useState(false);
const [isSubmitButtonHidden, setIsSubmitButtonHidden] = React.useState(false);

const handleHideSubmitButtonEvent = React.useCallback(
(hideValue) => {
if (typeof hideValue == "boolean") setIsSubmitButtonHidden(hideValue);
},
[setIsSubmitButtonHidden]
);

React.useEffect(() => {
// Reset submitting when switching from onboarding
setSubmitting(false);
}, [currentTask]);
}, []);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what was the rationale behind removing this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that's a mistake, I don't even know how that got updated.


React.useEffect(() => {
window._MEPHISTO_CONFIG_.EVENT_EMITTER.on(
"HIDE_SUBMIT_BUTTON",
handleHideSubmitButtonEvent
);
}, [setIsSubmitButtonHidden]);
Copy link
Contributor

@pringshia pringshia Aug 3, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stretch goal:

I'm thinking all of this code could be condensed down into an elegant hook, very similar to the React.useState hook:

const [isSubmitButtonHidden, setIsSubmitButtonHidden]  = useMephistoGlobalConfig("HIDE_SUBMIT_BUTTON")

// with default value:
const [isSubmitButtonHidden, setIsSubmitButtonHidden]  = useMephistoGlobalConfig("HIDE_SUBMIT_BUTTON", false)

// optional, with validator function that only updates the first var under the hood if it passes the validation condition
const [isSubmitButtonHidden, setIsSubmitButtonHidden]  = useMephistoGlobalConfig("HIDE_SUBMIT_BUTTON", false, val => typeof val === "boolean")

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I presume you mean the React.useState hook

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oops yes, updated


function handleFormSubmit(event) {
event.preventDefault();
Expand All @@ -121,13 +136,19 @@ function SubmitFrame({ children, onSubmit, currentTask }) {
{children}
<div>
<div style={{ display: "flex", justifyContent: "center" }}>
<Button type="submit" disabled={submitting}>
<span
style={{ marginRight: 5 }}
className="glyphicon glyphicon-ok"
/>
{submitting ? "Submitting..." : "Submit"}
</Button>
{!isSubmitButtonHidden && (
<Button
id="html-task-submit-button"
type="submit"
disabled={submitting}
>
<span
style={{ marginRight: 5 }}
className="glyphicon glyphicon-ok"
/>
{submitting ? "Submitting..." : "Submit"}
</Button>
)}
</div>
</div>
</form>
Expand Down
Loading