takasurazeem / QuranMajeed

This app will help you create Quiz for your students if you teach The Quran. This app will grow in features ان شاء اللہ تَعَالٰی
MIT License
5 stars 1 forks source link

Settings menu implementation #53

Closed takasurazeem closed 5 months ago

takasurazeem commented 5 months ago

A concept settings page. الحمدالله

Summary by CodeRabbit

coderabbitai[bot] commented 5 months ago

Walkthrough

The project underwent updates to enhance its Quiz feature, incorporating new settings for quizzes, adjusting PDF preview functionality, and improving localization. New files were added for managing quiz settings, and the PDF generation process now utilizes these settings. Localization files were updated to support new UI elements, and the quiz view now includes a settings page. Overall, these changes aim to provide a more customizable quiz experience and streamline the preparation process for TestFlight deployments.

Changes

File(s) Change Summary
Al-Tanzeel.xcodeproj/project.pbxproj Added QuizSettingsView.swift and QuizPreferences.swift, new group QuizSettings, and shell script build phase WhatToTest.
QuranMajeed/Localizable.xcstrings Added dictionaries for emojis, "Quiz Settings" key, and placeholders for settings.
.../Quiz/Main/View/Quiz/PDFPreviewView.swift Introduced AppStorage properties, updated PDFKitView structure, and utilized QuizPreferences for PDF settings.
.../Quiz/Main/View/Quiz/QuizView.swift Added isShowingSettingsPage state variable for displaying settings page.
.../Quiz/Main/ViewModel/QuizViewModel.swift Added import SwiftUI.
.../Quiz/PDFPreview/Utility/PDFGenerator.swift Modified init to accept preferences, updated header text handling.
.../Quiz/PDFPreview/View/QuizPDFPreview.swift Added quiz header preferences in struct initialization.
QuranMajeed/Quiz/QuizSettings/QuizPreferences.swift Introduced QuizPreferences struct with settings for quiz header and date.
QuranMajeed/Quiz/QuizSettings/QuizSettingsView.swift New view for quiz settings with UI for Masjid and Class names.

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

Tips ### Chat There are 3 ways to chat with CodeRabbit: - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit .` - `Generate unit-tests for this file.` - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit tests for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai generate interesting stats about this repository from git and render them as a table.` - `@coderabbitai show all the console.log statements in this repository.` - `@coderabbitai read src/utils.ts and generate unit tests.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (invoked as PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger a review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai help` to get help. Additionally, you can add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. ### CodeRabbit Configration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - The JSON schema for the configuration file is available [here](https://coderabbit.ai/integrations/coderabbit-overrides.v2.json). - If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/coderabbit-overrides.v2.json` ### CodeRabbit Discord Community Join our [Discord Community](https://discord.com/invite/GsXnASn26c) to get help, request features, and share feedback.
codeautopilot[bot] commented 5 months ago

PR summary

The Pull Request (PR) implements a settings menu for a quiz feature within an application. It includes the addition of new Swift files for the settings view and preferences, modifications to existing views to accommodate the settings menu, and a script to auto-generate release notes for Xcode Cloud. The settings menu allows users to customize the top header of the quiz with a Masjid name and a class name. The PR also includes localization placeholders for the new settings and updates to the PDF preview generation to reflect these preferences.

Suggestion

The PR seems to be well-structured with clear commit messages and purposeful changes. However, it is noted that there are some FIXME and TODO comments indicating that parts of the implementation are temporary and require further refinement. It is recommended to address these comments and ensure that the implementation is finalized before merging the PR. Additionally, it would be beneficial to include unit tests for the new functionality to ensure stability and prevent future regressions.