fix: resolve feedback validation issues from GitHub issue #16
- Fixed backend validation to properly handle empty strings in validateGuestRequirements - Added Boolean conversion for SQLite boolean values in feedback settings API response - Created FeedbackIdentityModal component for collecting name/email when required - Updated PhotoLikes, PhotoRating, and PhotoFavorites components to show modal when requireNameEmail is true - Fixed issue where require_name_email field was not reaching frontend due to missing boolean conversion This ensures that when 'Require Name & Email' is enabled, guests are prompted with a modal to provide their information before submitting feedback, preventing 400 Bad Request errors. 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -26,7 +26,11 @@ export const PhotoFeedback: React.FC<PhotoFeedbackProps> = ({
|
||||
// Fetch feedback settings for the gallery
|
||||
const { data: settings, isLoading: settingsLoading } = useQuery({
|
||||
queryKey: ['gallery-feedback-settings', gallerySlug],
|
||||
queryFn: () => feedbackService.getGalleryFeedbackSettings(gallerySlug),
|
||||
queryFn: async () => {
|
||||
const data = await feedbackService.getGalleryFeedbackSettings(gallerySlug);
|
||||
console.log('PhotoFeedback received settings:', data);
|
||||
return data;
|
||||
},
|
||||
staleTime: 5 * 60 * 1000, // Cache for 5 minutes
|
||||
});
|
||||
|
||||
@@ -104,6 +108,7 @@ export const PhotoFeedback: React.FC<PhotoFeedbackProps> = ({
|
||||
averageRating={Number(feedbackData?.summary?.average_rating) || 0}
|
||||
totalRatings={Number(feedbackData?.summary?.total_ratings) || 0}
|
||||
isEnabled={true}
|
||||
requireNameEmail={settings.require_name_email || false}
|
||||
onRatingChange={handleRatingChange}
|
||||
/>
|
||||
)}
|
||||
@@ -118,6 +123,7 @@ export const PhotoFeedback: React.FC<PhotoFeedbackProps> = ({
|
||||
isLiked={isLiked}
|
||||
likeCount={likeCount}
|
||||
isEnabled={true}
|
||||
requireNameEmail={settings.require_name_email || false}
|
||||
onLikeChange={handleLikeChange}
|
||||
/>
|
||||
)}
|
||||
@@ -128,6 +134,7 @@ export const PhotoFeedback: React.FC<PhotoFeedbackProps> = ({
|
||||
isFavorited={isFavorited}
|
||||
favoriteCount={favoriteCount}
|
||||
isEnabled={true}
|
||||
requireNameEmail={settings.require_name_email || false}
|
||||
onFavoriteChange={handleFavoriteChange}
|
||||
/>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user