67 lines
1.8 KiB
JavaScript
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
|
|
};
|
|
}
|