@@ -15,7 +15,6 @@ import { slide } from "svelte/transition";
1515import { expoOut } from " svelte/easing" ;
1616
1717import { getContext } from " svelte" ;
18- import { json } from " @sveltejs/kit" ;
1918
2019
2120interface Props {
@@ -33,7 +32,7 @@ let self: HTMLElement;
3332
3433function onmousedown(e : MouseEvent )
3534{
36- dragging .grabbed = self ;
35+ dragging .sub_id = subtitle . id ;
3736
3837 if (dragging .ghost ) {
3938 dragging .ghost .innerHTML = self .innerHTML ;
@@ -48,17 +47,22 @@ function onmouseenter(e: MouseEvent)
4847{
4948 e .stopPropagation ();
5049
51- if (
52- dragging . grabbed
53- && e . target != dragging . grabbed
54- && e . target ?. classList . contains ( " subtitle" )
55- ) {
56- $subtitles .reorder_before_by_id (
57- parseInt (dragging .grabbed . dataset . subtitleId ),
58- parseInt ( e . target . dataset . subtitleId )
59- );
60- $subtitles .subs = $subtitles . subs ;
50+ console . log ( " dragging.sub_id = " , dragging . sub_id );
51+ console . log ( " subtitle.id = " , subtitle . id );
52+
53+ if ( ! dragging . sub_id || dragging . sub_id === subtitle . id ) return ;
54+
55+ // console.log("$subtitles.subs.before =", $subtitles.subs.map(sub => `${sub.id}-${sub.body}`));
56+ if (dragging .direction === " up " ) {
57+ $subtitles . reorder_before_by_id ( dragging . sub_id , subtitle . id );
58+ } else {
59+ $subtitles .reorder_after_by_id ( dragging . sub_id , subtitle . id ) ;
6160 }
61+ // console.log("$subtitles.subs.after =", $subtitles.subs.map(sub => `${sub.id}-${sub.body}`));
62+ $subtitles .subs = $subtitles .subs ;
63+
64+ dragging .reordering_id = subtitle .id ;
65+ requestAnimationFrame (() => { dragging .reordering_id = null ; });
6266}
6367
6468
@@ -94,11 +98,10 @@ function get(
9498<!-- svelte-ignore a11y_no_static_element_interactions -->
9599<div
96100 class =" subtitle"
97- class:grabbed ={dragging .grabbed ?. dataset . subtitleId === subtitle .id . toString () }
101+ class:grabbed ={dragging .sub_id === subtitle .id }
98102 bind:this ={self }
99103 {onmousedown }
100104 {onmouseenter }
101- data-subtitle-id ={subtitle .id }
102105 transition:slide ={{ duration : 400 , easing : expoOut }}
103106>
104107 <div class =" grabber" >
0 commit comments