The Quiz
component is a flexible and interactive card component for displaying quiz information. It includes various functionalities such as editing, moving, deleting, and playing a quiz. The component is designed to be customizable and can adapt to different use cases with the help of props.
- Displays quiz details including title, plays, questions, status, and folder name.
- Allows editing, moving, deleting, and playing the quiz through menu actions.
- Customizable menu items and action components.
- Responsive design with hover and click interactions.
Install the necessary dependencies:
npm install @mui/material @emotion/react @emotion/styled @mui/icons-material
Install the package via npm:
npm install @7span/phoenix-react-ui-quizcard
Or via yarn:
yarn add @7span/phoenix-react-ui-quizcard
Here's a basic example of how to use the custom Sidebar component in your React application:
import React from "react";
import Quiz from " @7span/phoenix-react-ui-quizcard";
import MoveQuizModelComponent from "./MoveQuizModelComponent"; // Your custom move quiz modal component
import ActionItemsComponent from "./ActionItemsComponent"; // Your custom action items component
const App = () => {
const handleDoubleClick = (id) => {
console.log("Quiz double-clicked:", id);
};
const handleDelete = (id) => {
console.log("Quiz deleted:", id);
};
const handleEdit = (id) => {
console.log("Quiz edited:", id);
};
const handleMove = (id) => {
console.log("Quiz moved:", id);
};
const handlePlay = (id) => {
console.log("Quiz played:", id);
};
const menuItems = [
{
name: "Custom Action",
onClick: () => console.log("Custom action triggered"),
},
];
return (
<Quiz
title="Sample Quiz"
plays={10}
questions={5}
status="DRAFT"
id={1}
folderName="Sample Folder"
coverImage="path/to/cover/image.jpg"
onDoubleClick={handleDoubleClick}
onDelete={handleDelete}
onEdit={handleEdit}
onMove={handleMove}
onPlay={handlePlay}
menuItems={menuItems}
MoveQuizModelComponent={MoveQuizModelComponent}
ActionItemsComponent={ActionItemsComponent}
/>
);
};
export default App;
Prop | Type | Default | Description |
---|---|---|---|
title |
string | null |
The title of the quiz. |
plays |
number | 0 |
The number of times the quiz has been played. |
questions |
number | 0 |
The number of questions in the quiz. |
status |
string | null |
The status of the quiz (e.g., DRAFT). |
id |
number | null |
The unique identifier of the quiz. |
folderName |
string | null |
The name of the folder containing the quiz. |
coverImage |
string | null |
The URL of the cover image for the quiz. |
onDoubleClick |
function | null |
Callback function triggered on double-clicking the quiz card. |
onDelete |
function | null |
Callback function triggered on deleting the quiz. |
onEdit |
function | null |
Callback function triggered on editing the quiz. |
onMove |
function | null |
Callback function triggered on moving the quiz. |
onPlay |
function | null |
Callback function triggered on playing the quiz. |
menuItems |
array | null |
Custom menu items to display in the action menu. |
MoveQuizModelComponent |
element | null |
Custom component for handling the move quiz modal. |
ActionItemsComponent |
element | null |
Custom component for displaying action items in the menu. |
You can customize the styles of the ActionItems component and its elements by modifying the sx prop in the component's JSX.
Quiz Card |
---|
- Krushna Mistry
If you would like to contribute to the project, please follow these steps:
- Fork the repository
- Create a new branch (git checkout -b feature/your-feature)
- Make your changes
- Commit your changes (git commit -m 'Add some feature')
- Push to the branch (git push origin feature/your-feature)
- Open a Pull Request
This project is licensed under the MIT License
If you have any questions or suggestions, feel free to open an issue or contact me directly at [yo@7span.com].
Made with by 7span