@@ -443,20 +443,6 @@ export function swapElements(pathA, pathB) {
443
443
folderA . elements [ numberA - 1 ] . number = numberA ;
444
444
folderB . elements [ numberB - 1 ] . number = numberB ;
445
445
446
- function arraysEqual ( arr1 , arr2 ) {
447
- if ( arr1 . length != arr2 . length ) {
448
- return false ;
449
- }
450
-
451
- for ( let i = 0 ; i < arr1 . length ; ++ i ) {
452
- if ( arr1 [ i ] != arr2 [ i ] ) {
453
- return false ;
454
- }
455
- }
456
-
457
- return true ;
458
- }
459
-
460
446
if ( arraysEqual ( pathA , currPath ) ) {
461
447
rebuildElement ( folderA . elements [ numberA - 1 ] ) ;
462
448
}
@@ -466,6 +452,23 @@ export function swapElements(pathA, pathB) {
466
452
browser . storage . local . set ( { structure : rootFolder } ) ;
467
453
}
468
454
455
+ /**
456
+ * Сравнение двух массивов поэлементно
457
+ */
458
+ function arraysEqual ( arr1 , arr2 ) {
459
+ if ( arr1 . length != arr2 . length ) {
460
+ return false ;
461
+ }
462
+
463
+ for ( let i = 0 ; i < arr1 . length ; ++ i ) {
464
+ if ( arr1 [ i ] != arr2 [ i ] ) {
465
+ return false ;
466
+ }
467
+ }
468
+
469
+ return true ;
470
+ }
471
+
469
472
//https://stackoverflow.com/questions/1369035/how-do-i-prevent-a-parents-onclick-event-from-firing-when-a-child-anchor-is-cli
470
473
/**
471
474
* Проверка цели события
@@ -829,10 +832,11 @@ function onCurtainClicked(event) {
829
832
* @param Element element Новый элемент
830
833
*/
831
834
export function overwriteElement ( path , element ) {
832
- let folder = getFolderByPath ( path , rootFolder ) ;
835
+ let pathOrig = Array . from ( path ) ;
836
+ let folder = getFolderByPath ( pathOrig , rootFolder ) ;
833
837
//WARN: element = verifyElementObject(element);
834
838
folder . elements [ element . number - 1 ] = element ;
835
- if ( path == currPath ) {
839
+ if ( arraysEqual ( pathOrig , currPath ) ) {
836
840
rebuildElement ( element ) ;
837
841
}
838
842
browser . storage . local . set ( { structure : rootFolder } ) ;
@@ -849,15 +853,16 @@ export function overwriteElement(path, element) {
849
853
* @param Element element Новый элемент
850
854
*/
851
855
export function restoreElement ( path , number ) {
856
+ let pathOrig = Array . from ( path ) ;
852
857
browser . storage . local . get ( "structure" ) . then ( function ( result ) {
853
- let folder = getFolderByPath ( path , result . structure ) ;
858
+ let folder = getFolderByPath ( pathOrig , result . structure ) ;
854
859
let element = folder . elements [ number - 1 ] ;
855
860
856
- let folderFromStructure = getFolderByPath ( path , rootFolder ) ;
861
+ let folderFromStructure = getFolderByPath ( pathOrig , rootFolder ) ;
857
862
//WARN: element = verifyElementObject(element);
858
863
folderFromStructure . elements [ element . number - 1 ] = element ;
859
864
860
- if ( path == currPath ) {
865
+ if ( arraysEqual ( pathOrig , currPath ) ) {
861
866
rebuildElement ( element ) ;
862
867
}
863
868
} , onPromiseFailed ) ;
0 commit comments