Conversation
AllanKoder
commented
Sep 10, 2025
- Dark Mode
- Tags query with sanitized string
- Resource button has nicer UI
- Create resource page has helper info
- Create resource page can save local images
There was a problem hiding this comment.
Pull Request Overview
This PR adds comprehensive dark mode support to the application, improves the tagging system with sanitized queries, enhances UI components, adds helper information for resource creation, and enables local image saving functionality. The changes span theming configuration, Vue components, and form handling to create a more polished user experience.
- Dark mode implementation with theme switching and styled components
- Enhanced tag selection with better query handling and sanitization
- Improved resource creation flow with helper modals and local image support
Reviewed Changes
Copilot reviewed 47 out of 50 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| theming.config.js | Added dark mode color scheme configuration |
| resources/js/app.js | Configured PrimeVue dark mode selector |
| resources/js/Composables/useDarkMode.js | New composable for dark mode state management |
| Multiple Vue components | Added dark mode class variants throughout UI |
| resources/js/Components/Form/TagSelector.vue | Enhanced tag query sanitization and dark theme support |
| resources/js/Pages/Resources/MandatoryFields.vue | Added description helper modal and local image handling |
| resources/js/Helpers/labels.js | Improved pricing option descriptions |
Comments suppressed due to low confidence (1)
resources/js/Helpers/validation.js:73
- There's a TODO comment indicating that validation doesn't work correctly, and there's also a spelling error in the TODO comment ('NTO' should be 'NOT'). The validation logic should be reviewed and fixed to ensure proper functionality, and the TODO should be addressed or removed if the issue is resolved.
// TODO: THIS VALIDATION DOES NTO WORK CORRECTLY
pros: array()
.transform((_value, originalValue) => {
// Handle case where PrimeVue might pass a string instead of array
if (typeof originalValue === "string") {
return originalValue.trim() ? [originalValue.trim()] : [];
}
return Array.isArray(originalValue) ? originalValue : [];
})
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| import { definePreset } from "@primevue/themes"; | ||
| import Aura from "@primevue/themes/aura"; | ||
|
|
||
| const customTheme = definePreset(Aura, { | ||
| font: { | ||
| family: "Open Sans", | ||
| }, | ||
| semantic: { | ||
| primary: { | ||
| 50: "{orange.50}", | ||
| 100: "{orange.100}", | ||
| 200: "{orange.200}", | ||
| 300: "{orange.300}", | ||
| 400: "{orange.400}", | ||
| 500: "{orange.500}", | ||
| 600: "{orange.600}", | ||
| 700: "{orange.700}", | ||
| 800: "{orange.800}", | ||
| 900: "{orange.900}", | ||
| 950: "{orange.950}", | ||
| }, | ||
| } | ||
| }); | ||
|
|
||
| export default customTheme; |
There was a problem hiding this comment.
This file appears to be a duplicate of the root-level theming.config.js file with identical content but missing the dark mode color scheme configuration. This creates code duplication and inconsistency. Consider removing this duplicate file or ensuring it serves a different purpose with appropriate differentiation.
| import { definePreset } from "@primevue/themes"; | |
| import Aura from "@primevue/themes/aura"; | |
| const customTheme = definePreset(Aura, { | |
| font: { | |
| family: "Open Sans", | |
| }, | |
| semantic: { | |
| primary: { | |
| 50: "{orange.50}", | |
| 100: "{orange.100}", | |
| 200: "{orange.200}", | |
| 300: "{orange.300}", | |
| 400: "{orange.400}", | |
| 500: "{orange.500}", | |
| 600: "{orange.600}", | |
| 700: "{orange.700}", | |
| 800: "{orange.800}", | |
| 900: "{orange.900}", | |
| 950: "{orange.950}", | |
| }, | |
| } | |
| }); | |
| export default customTheme; |
| Since there are no existing votes (positive or negative), the entire community can merge any edits. | ||
| The reasoning is that someone could've made a typo and needed a quick fix. | ||
| Everyone automatically upvotes their own resources. So, you must unvote your newly created resource to reach 0 votes. |
There was a problem hiding this comment.
The removed <th></th> tags were invalid HTML elements inside a table cell (<td>). While this fixes the HTML structure issue, the content should be properly formatted with paragraph tags or line breaks for better readability and semantic structure.
| Since there are no existing votes (positive or negative), the entire community can merge any edits. | |
| The reasoning is that someone could've made a typo and needed a quick fix. | |
| Everyone automatically upvotes their own resources. So, you must unvote your newly created resource to reach 0 votes. | |
| <p>Since there are no existing votes (positive or negative), the entire community can merge any edits.</p> | |
| <p>The reasoning is that someone could've made a typo and needed a quick fix.</p> | |
| <p>Everyone automatically upvotes their own resources. So, you must unvote your newly created resource to reach 0 votes.</p> |
resources/js/Components/Resources/Reviews/CreateResourceReview.vue
Outdated
Show resolved
Hide resolved
….vue Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>