Refresh profile data after setting avatar and ensure proper activation
- handleSelectAvatar now sets avatar as active via API and refreshes profile data - handleUploadPhoto and handleCreateAvatar Creator now update member and refre...
Convert null to undefined for avatarSrc type compatibility
- fetchMemberAvatar returns string | null but avatarSrc expects string | undefined - Use nullish coalescing operator to convert null to undefined
Add .js extension to dynamic imports for node16 module resolution
- TypeScript with node16 moduleResolution requires explicit file extensions - Changed relative imports to include .js extension
Use relative paths for dynamic imports of avatarUtils
- Changed dynamic imports from @/app/lib/avatarUtils to relative paths - Fixes TypeScript module resolution error during build
Fix async/await syntax error in HexHeadGroup useEffect
- Wrapped Promise.all in async function to fix build error - useEffect callbacks cannot be async directly
Update avatarUtils to use URLs directly from member profile
- Backend now includes avatar URLs in member profile response - Removed unnecessary second API call to /api/security/avatars/{id} - More efficient and works cor...
Include avatar URLs in member profile response
- Added helper methods to generate avatar URLs (getThemeDomain, getPublicBucketName, generateFileHash, getPublicBucketUrl, generateAvatarUrl) - Updated getMembe...
Add avatar fallback logic to chat components and member list
- Created avatarUtils.ts with utility functions for avatar fallback (member -> user -> initials) - Updated HexHeadGroup to fetch and display avatars with fallba...
Add ThemeBackgroundController with hash-based storage and public bucket support
थीम बैकग्राउंड इकाई जोड़ें और उपयोगकर्ता / सदस्य संबंधों के साथ भंडार करें
Implement ThemeBackground system: entity, repository, controller, and enhanced BackgroundManager with slideshow support
Fix lint error: change let to const for filtered variable and remove unused imports
Enhance Select Avatar tab: add search, sort by newest, date/time display, edit avatars, and photo cropping with draggable mask
Fix Grid layout: replace Grid container/item with Box using CSS Grid to match FormPersonalInfo.tsx exact layout
Fix TypeScript errors: add eslint-disable for EyeDropper any type, remove unused imports
Replace CREATE AVATAR tab with exact layout from FormPersonalInfo.tsx - matching kamo-register avatar creator interface
Fix Swiper CSS imports: move to top-level side-effect imports instead of dynamic imports
फिक्स स्विपर आयात: कॉमनजेएस / ईएसएम मॉड्यूल मुद्दे को हल करने के लिए गतिशील आयात का उपयोग करें
Fix TypeScript error: replace 'any' with 'unknown' in error handling
MUI v7 ग्रिड एपीआई से मिलान करने के लिए ग्रिड घटक एपीआई उपयोग को ठीक करें
मैच CREATE AVATAR मेनू लेआउट वास्तव में Kamo-register डिजाइन के लिए
कामो-रिजिस्टर डिजाइन से मिलान करने के लिए अवतार लेआउट बनाएं
- त्वरित सेटिंग्स (स्टाइल, बीज) के लिए शीर्ष पंक्ति के साथ अवतार टैब बनाएं - दो स्तंभों में विभाजित नीचे पंक्ति: पूर्वावलोकन (बाएं) और उन्नत सेटिंग्स (दाएं) - व...
Switch back to MuiAvatar components for avatar display
- Replace img tags with MuiAvatar components - Maintains all existing functionality (error handling, loading callbacks) - Cleaner code using Material-UI compone...
Use correct bucket and object path structure for MinIO uploads
- Change bucket name from domain-based to 'public' bucket - Include domain path (e.g., kamocrm-com) as part of object name, not bucket name - Fix object path st...
Properly handle MinIO upload failures for avatars
- Remove silent exception swallowing in Avatar Creator avatar creation - Add proper error handling and rollback for failed uploads - Delete database record if f...
Remove ID-based fallback code, use only hash-based naming
- Remove all try-catch fallback logic for missing fileHash column - Remove ID-based file naming fallbacks - Code now exclusively uses hash-based file storage - ...
Handle missing fileHash column gracefully
- Add try-catch around fileHash access to handle missing database column - Fall back to ID-based file naming if fileHash column doesn't exist yet - Allows code ...
इमग टैग के साथ MuiAvatar को ठीक से अवतार छवियों को प्रदर्शित करने के लिए बदलें
- बेहतर छवि प्रतिपादन के लिए MuiAvatar घटक के बजाय मूल img टैग का उपयोग करें - परिपत्र प्रदर्शन के लिए उचित स्टाइल के साथ बॉक्स कंटेनर में लपेटें - सभी मौजूदा क...
Implement hash-based file storage for avatars
- Generate SHA-256 hash from avatar ID after persistence - Store hash in database fileHash field - Upload files to MinIO using hash-based naming: {hash}.{fileEx...
सुरक्षित फ़ाइल भंडारण के लिए अवतार इकाई में फ़ाइल हैश फ़ील्ड जोड़ें
फ़ाइल जोड़ेंहैश कॉलम को स्टोर करने के लिए SHA-256 हैश की अवतार ID - हैश का उपयोग न्यूनीकरण हमलों को रोकने के लिए मिनियो फाइल नामकरण के लिए किया जाता है - प्रारू...
अवतार यूआरएल पीढ़ी और प्रदर्शन मुद्दों
- एपीआई प्रॉक्सी में X-Forwarded-Host हेडर अग्रेषण जोड़ें ताकि बैकेंड सही थीम डोमेन URL उत्पन्न कर सकें - अवतार अपलोड करने और संचालन लाने के लिए व्यापक लॉगिंग ज...
अवतार प्रबंधन यूआई और कार्यक्षमता में सुधार
- सभी अवतारों के लिए छवियों को दिखाने के लिए चयन अवतार पॉपअप में अवतार प्रदर्शन को ठीक करें (जब URL लापता हो जाता है तो SVG क्लाइंट-साइड उत्पन्न करें) - बेहतर फ...
GetPageviewExpandedMetrics क्वेरी में SQL syntax त्रुटि को ठीक करें
ConvertAvatarUrl कॉल निकालें - सीधे बैकएंड यूआरएल से छवियों को प्रदर्शित करें
AvatarUrlTransform अद्यतन करने के बजाय null अपरिभाषित वापस करने के लिए
Add logging and ensure public bucket URL format matches working pattern
सार्वजनिक बाल्टी में अवतार स्विच करें - कोई auth की जरूरत नहीं, प्रत्यक्ष थीम यूआरएल
Next.js 15 मार्ग हैंडलर में params के लिए वादा प्रकार का उपयोग करें
अद्यतन Next.js 15 रूट हैंडलर params हैंडलिंग के लिए अवतार भंडारण प्रॉक्सी
सदस्य हेडर और प्रोफाइल टैब में अवतार यूआरएल में यूआरएल परिवर्तन लागू करें
मिश्रित सामग्री त्रुटियों को ठीक करने के लिए अवतार छवियों के लिए प्रॉक्सी मार्ग और यूआरएल परिवर्तन जोड़ें
Revert to getPresignedUrl like backgrounds - getPresignedUrlWithEndpoint was breaking uploads
Add retry logic for Maven dependency downloads to handle transient Central failures
जैसा कि आप शिपिंग देखते हैं?
इन अद्यतनों में से प्रत्येक स्वचालित रूप से अपने कार्यक्षेत्र में उतरता है। प्रारंभ करें और सप्ताह के बाद इसे सप्ताह के अंत में देखें।.