Files
dictia-public/static/js/modules/state/sharing.js

67 lines
1.8 KiB
JavaScript

/**
* Sharing state management
*/
export function createSharingState(ref, reactive) {
// --- Public Sharing State ---
const recordingToShare = ref(null);
const shareOptions = reactive({
share_summary: true,
share_notes: true,
});
const generatedShareLink = ref('');
const existingShareDetected = ref(false);
const userShares = ref([]);
const isLoadingShares = ref(false);
const shareToDelete = ref(null);
// --- Internal Sharing State ---
const internalShareUserSearch = ref('');
const internalShareSearchResults = ref([]);
const internalShareRecording = ref(null);
const internalSharePermissions = ref({ can_edit: false, can_reshare: false });
const recordingInternalShares = ref([]);
const isLoadingInternalShares = ref(false);
const isSearchingUsers = ref(false);
const allUsers = ref([]);
const isLoadingAllUsers = ref(false);
// --- Audio Player State ---
const playerVolume = ref(1.0);
const audioIsPlaying = ref(false);
const audioCurrentTime = ref(0);
const audioDuration = ref(0);
const audioIsMuted = ref(false);
const audioIsLoading = ref(false);
return {
// Public sharing
recordingToShare,
shareOptions,
generatedShareLink,
existingShareDetected,
userShares,
isLoadingShares,
shareToDelete,
// Internal sharing
internalShareUserSearch,
internalShareSearchResults,
internalShareRecording,
internalSharePermissions,
recordingInternalShares,
isLoadingInternalShares,
isSearchingUsers,
allUsers,
isLoadingAllUsers,
// Audio player
playerVolume,
audioIsPlaying,
audioCurrentTime,
audioDuration,
audioIsMuted,
audioIsLoading
};
}