![Maven Central Adds Sigstore Signature Validation](https://cdn.sanity.io/images/cgdhsj6q/production/7da3bc8a946cfb5df15d7fcf49767faedc72b483-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Maven Central Adds Sigstore Signature Validation
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
react-quiz-component-3900
Advanced tools
:orange_book: React Quiz Component
react-quiz-component-3900 is a ReactJS component allowing users to attempt a quiz.
npm i react-quiz-component-3900
import Quiz from 'react-quiz-component-3900';
The quiz source is a JSON object. You can use react-quiz-form to generate it.
export const quiz = {
"quizTitle": "React Quiz Component Demo",
"quizSynopsis": "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim",
"nrOfQuestions": "4",
"questions": [
{
"question": "How can you access the state of a component from inside of a member function?",
"questionType": "text",
"questionPic": "https://dummyimage.com/600x400/000/fff&text=X", // if you need to display Picture in Question
"answerSelectionType": "single",
"answers": [
"this.getState()",
"this.prototype.stateValue",
"this.state",
"this.values"
],
"correctAnswer": "3",
"messageForCorrectAnswer": "Correct answer. Good job.",
"messageForIncorrectAnswer": "Incorrect answer. Please try again.",
"explanation": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
"point": "20"
},
{
"question": "ReactJS is developed by _____?",
"questionType": "text",
"answerSelectionType": "single",
"answers": [
"Google Engineers",
"Facebook Engineers"
],
"correctAnswer": "2",
"messageForCorrectAnswer": "Correct answer. Good job.",
"messageForIncorrectAnswer": "Incorrect answer. Please try again.",
"explanation": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
"point": "20"
},
{
"question": "ReactJS is an MVC based framework?",
"questionType": "text",
"answerSelectionType": "single",
"answers": [
"True",
"False"
],
"correctAnswer": "2",
"messageForCorrectAnswer": "Correct answer. Good job.",
"messageForIncorrectAnswer": "Incorrect answer. Please try again.",
"explanation": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
"point": "10"
},
{
"question": "Which of the following concepts is/are key to ReactJS?",
"questionType": "text",
"answerSelectionType": "single",
"answers": [
"Component-oriented design",
"Event delegation model",
"Both of the above",
],
"correctAnswer": "3",
"messageForCorrectAnswer": "Correct answer. Good job.",
"messageForIncorrectAnswer": "Incorrect answer. Please try again.",
"explanation": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
"point": "30"
},
{
"question": "Lorem ipsum dolor sit amet, consectetur adipiscing elit,",
"questionType": "photo",
"answerSelectionType": "single",
"answers": [
"https://dummyimage.com/600x400/000/fff&text=A",
"https://dummyimage.com/600x400/000/fff&text=B",
"https://dummyimage.com/600x400/000/fff&text=C",
"https://dummyimage.com/600x400/000/fff&text=D"
],
"correctAnswer": "1",
"messageForCorrectAnswer": "Correct answer. Good job.",
"messageForIncorrectAnswer": "Incorrect answer. Please try again.",
"explanation": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
"point": "20"
},
{
"question": "What are the advantages of React JS?",
"questionType": "text",
"answerSelectionType": "multiple",
"answers": [
"React can be used on client and as well as server side too",
"Using React increases readability and makes maintainability easier. Component, Data patterns improves readability and thus makes it easier for manitaining larger apps",
"React components have lifecycle events that fall into State/Property Updates",
"React can be used with any other framework (Backbone.js, Angular.js) as it is only a view layer"
],
"correctAnswer": [1, 2, 4],
"messageForCorrectAnswer": "Correct answer. Good job.",
"messageForIncorrectAnswer": "Incorrect answer. Please try again.",
"explanation": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
"point": "20"
},
]
}
If you want to use your customized text, you can add appLocale into your quiz source. Below is the default one. and will be replaced dynamically.
"appLocale": {
"landingHeaderText": "<questionLength> Questions",
"question": "Question",
"startQuizBtn": "Start Quiz",
"resultFilterAll": "All",
"resultFilterCorrect": "Correct",
"resultFilterIncorrect": "Incorrect",
"prevQuestionBtn": "Prev",
"nextQuestionBtn": "Next",
"resultPageHeaderText": "You have completed the quiz. You got <correctIndexLength> out of <questionLength> questions."
}
import { quiz } from './quiz';
...
<Quiz quiz={quiz}/>
import { quiz } from './quiz';
...
<Quiz quiz={quiz} shuffle={true}/>
import { quiz } from './quiz';
...
<Quiz quiz={quiz} showDefaultResult={false}/>
import { quiz } from './quiz';
...
const renderCustomResultPage = (obj) => {
console.log(obj);
return (
<div>
This is a custom result page. You can use obj to render your custom result page
</div>
)
}
...
<Quiz quiz={quiz} showDefaultResult={false} customResultPage={renderCustomResultPage}/>
import { quiz } from './quiz';
...
const setQuizResult = (obj) => {
console.log(obj);
// YOUR LOGIC GOES HERE
}
...
<Quiz quiz={quiz} showDefaultResult={false} onComplete={setQuizResult}/>
Object
numberOfCorrectAnswers: 4
numberOfIncorrectAnswers: 1
numberOfQuestions: 5
questions: Array(5)
0: {question: "Which of the following concepts is/are key to ReactJS?", questionType: "text", answers: Array(3), correctAnswer: "3", messageForCorrectAnswer: "Correct answer. Good job.", …}
1: {question: "ReactJS is developed by _____?", questionType: "text", answers: Array(2), correctAnswer: "2", messageForCorrectAnswer: "Correct answer. Good job.", …}
2: {question: "How can you access the state of a component from inside of a member function?", questionType: "text", answers: Array(4), correctAnswer: "3", messageForCorrectAnswer: "Correct answer. Good job.", …}
3: {question: "Lorem ipsum dolor sit amet, consectetur adipiscing elit,", questionType: "photo", answers: Array(4), correctAnswer: "1", messageForCorrectAnswer: "Correct answer. Good job.", …}
4: {question: "ReactJS is an MVC based framework?", questionType: "text", answers: Array(2), correctAnswer: "2", messageForCorrectAnswer: "Correct answer. Good job.", …}
userInput: (5) [1, 2, 1, 2, 3]
totalPoints: 100
correctPoints: 40
import { quiz } from './quiz';
...
<Quiz quiz={quiz} showInstantFeedback={true}/>
import { quiz } from './quiz';
...
<Quiz quiz={quiz} continueTillCorrect={true}/>
Name | Type | Default | Required | Description |
---|---|---|---|---|
quiz | object | null | Y | Quiz Json Object |
shuffle | boolean | false | N | Shuffle the questions |
showDefaultResult | boolean | true | N | Show the default result page |
customResultPage | function | null | N | A quiz summary object will be returned to the function and users can use it to render its custom result page |
onComplete | function | null | N | A quiz summary object will be returned to the function |
showInstantFeedback | boolean | false | N | Show instant feedback when it is true |
continueTillCorrect | boolean | false | N | Continue to select an answer until it is correct |
onQuestionSubmit | function | null | N | A user response for a question will be returned |
disableSynopsis | boolean | false | N | Disable synopsis before quiz |
npm install
npm run dev
npm run lint
develop
and describe the changesThe demo is available at https://wingkwong.github.io/react-quiz-component-3900/
This project is licensed under the MIT License - see the LICENSE.md file for details
FAQs
React Quiz Component 3900
The npm package react-quiz-component-3900 receives a total of 0 weekly downloads. As such, react-quiz-component-3900 popularity was classified as not popular.
We found that react-quiz-component-3900 demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.