Skip to content

Commit a64ec3c

Browse files
authored
Merge pull request #161 from espadonne/main
fix activity logging for single-track effects and multitrack clip delete
2 parents aa93d16 + f184c0e commit a64ec3c

5 files changed

Lines changed: 23 additions & 7 deletions

File tree

components/audio/DAW/CustomWaveform/CustomTimeline.jsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,10 @@ export default function CustomTimeline() {
5353
// Set the cutRegion so effects know what region to apply to
5454
setCutRegion(activeRegion);
5555
setShowEffectsModal(true);
56-
}, [activeRegion, setShowEffectsModal, setCutRegion]);
56+
if (logOperation) {
57+
logOperation('effects_rack_toggled', {});
58+
}
59+
}, [activeRegion, setShowEffectsModal, setCutRegion, logOperation]);
5760

5861
// Handle splice (excise) region - keep only the selected region
5962
const handleSplice = useCallback(async () => {

components/audio/DAW/Effects/EQ.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -739,7 +739,7 @@ export async function processEQRegion(audioBuffer, startSample, endSample, param
739739
* Professional Parametric EQ with visual frequency response
740740
* Features: 8-band parametric EQ, spectrum analyzer, linear phase option
741741
*/
742-
export default function EQ({ width, modalMode = false, onApply }) {
742+
export default function EQ({ width, modalMode = false, onApply, logOperation = null }) {
743743
const {
744744
audioRef,
745745
addToEditHistory,
@@ -1151,6 +1151,9 @@ export default function EQ({ width, modalMode = false, onApply }) {
11511151
// Force new array and deep clone to trigger React re-render
11521152
setEqBands(preset.bands.map(band => ({ ...band })));
11531153
setEqGain(preset.outputGain);
1154+
if (logOperation && presetKey !== 'flat') {
1155+
logOperation('eq_preset_applied', { presetName: preset.name });
1156+
}
11541157
}
11551158
}}
11561159
className="bg-secondary text-white border-0"

components/audio/DAW/Effects/EffectControlModal.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ const effectComponents = {
3333
stereowide: lazy(() => import('./StereoWidener'))
3434
};
3535

36-
export default function EffectControlModal() {
36+
export default function EffectControlModal({ logOperation = null }) {
3737
const {
3838
showEffectControlModal,
3939
setShowEffectControlModal,
@@ -53,6 +53,13 @@ export default function EffectControlModal() {
5353
setSelectedEffect(null);
5454
};
5555

56+
const handleApply = () => {
57+
if (logOperation && selectedEffect) {
58+
logOperation('effect_applied', { effectType: selectedEffect.id });
59+
}
60+
handleClose();
61+
};
62+
5663

5764
if (!selectedEffect) {
5865
return null;
@@ -115,7 +122,7 @@ export default function EffectControlModal() {
115122
>
116123
{EffectComponent ? (
117124
<div className="effect-controls-container">
118-
<EffectComponent width={100} modalMode={true} onApply={handleClose} />
125+
<EffectComponent width={100} modalMode={true} onApply={handleApply} logOperation={logOperation} />
119126
</div>
120127
) : (
121128
<Alert variant="warning">

components/audio/DAW/Multitrack/MultitrackEditor.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,9 @@ export default function MultitrackEditor({ availableTakes: propTakes = [], logOp
372372
}
373373

374374
// Log deletion
375+
if (logOperation) {
376+
logOperation('clip_delete', { clipCount });
377+
}
375378
try {
376379
const activityLogger = getDAWActivityLogger();
377380
if (activityLogger?.isActive) {
@@ -386,7 +389,7 @@ export default function MultitrackEditor({ availableTakes: propTakes = [], logOp
386389
} catch (error) {
387390
console.error('📊 Error logging delete operation:', error);
388391
}
389-
}, [selectedTrack, selectedClipId, tracks, updateTrack, setSelectedClipId, setSelectedClipIds]);
392+
}, [selectedTrack, selectedClipId, tracks, updateTrack, setSelectedClipId, setSelectedClipIds, logOperation]);
390393

391394
// Handle split at playhead
392395
const handleSplitAtPlayhead = useCallback(() => {

components/audio/DAW/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -285,8 +285,8 @@ export default function DAW({
285285
</Card>
286286

287287
{/* Effects Modals */}
288-
<EffectsModal />
289-
<EffectControlModal />
288+
<EffectsModal logOperation={logOperation} />
289+
<EffectControlModal logOperation={logOperation} />
290290

291291
{/* Recording Modal for first-time recording */}
292292
<RecordingModal

0 commit comments

Comments
 (0)