UNPKG

@oxyhq/services

Version:

OxyHQ Expo/React Native SDK — UI components, screens, and native features

56 lines (54 loc) 1.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useAvatarPicker = useAvatarPicker; var _react = require("react"); var _core = require("@oxyhq/core"); var _sonner = require("../../lib/sonner"); var _avatarUtils = require("../utils/avatarUtils.js"); /** * Avatar Picker Hook * * Extracts avatar selection logic from OxyContext for better modularity. * Opens the FileManagement bottom sheet in select mode for image files, * then updates the user's profile avatar. */ function useAvatarPicker({ oxyServices, currentLanguage, activeSessionId, queryClient, showBottomSheet }) { const openAvatarPicker = (0, _react.useCallback)(() => { showBottomSheet({ screen: 'FileManagement', props: { selectMode: true, multiSelect: false, disabledMimeTypes: ['video/', 'audio/', 'application/pdf'], afterSelect: 'none', onSelect: async file => { if (!file.contentType.startsWith('image/')) { _sonner.toast.error((0, _core.translate)(currentLanguage ?? undefined, 'editProfile.toasts.selectImage') || 'Please select an image file'); return; } try { await (0, _avatarUtils.updateAvatarVisibility)(file.id, oxyServices, 'OxyContext'); await (0, _avatarUtils.updateProfileWithAvatar)({ avatar: file.id }, oxyServices, activeSessionId, queryClient); _sonner.toast.success((0, _core.translate)(currentLanguage ?? undefined, 'editProfile.toasts.avatarUpdated') || 'Avatar updated'); } catch (e) { _sonner.toast.error(e.message || (0, _core.translate)(currentLanguage ?? undefined, 'editProfile.toasts.updateAvatarFailed') || 'Failed to update avatar'); } } } }); }, [oxyServices, currentLanguage, showBottomSheet, activeSessionId, queryClient]); return { openAvatarPicker }; } //# sourceMappingURL=useAvatarPicker.js.map