Skip to content

Commit ea12a79

Browse files
optimizing a little bit
1 parent c8f9aa9 commit ea12a79

File tree

1 file changed

+91
-87
lines changed

1 file changed

+91
-87
lines changed

src/plugin/VStepperForm.vue

Lines changed: 91 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,7 @@ function headerItemEnabled(page: Page): boolean {
377377
const pageNotEditable = page.editable === false;
378378
const currentPageIdx = stepperModel.value - 1;
379379
const currentPageEditable = currentPages[currentPageIdx]?.editable !== false;
380-
const currentPageNotEditable = currentPages[currentPageIdx]?.editable === false;
380+
// const currentPageNotEditable = currentPages[currentPageIdx]?.editable === false;
381381
const lastPageIdx = currentPages.length - 1;
382382
383383
const previousPageIdx = pageIdx - 1;
@@ -416,92 +416,121 @@ function headerItemEnabled(page: Page): boolean {
416416
// & -------------------------------------------------- Always True //
417417
// Always set current page to editable //
418418
if (currentPageIdx === pageIdx) {
419-
console.log('a', page.title, pageIdx, currentPageIdx);
420-
// console.log('current page', page.title);
421419
return true;
422420
}
423421
424422
// & -------------------------------------------------- Always False //
425423
// Entire Stepper Form is not editable //
426424
if (!stepperFormIsEditable.value) {
427-
console.log('b', page.title, pageIdx, currentPageIdx);
428425
return false;
429426
}
430427
431428
// If current page has errors disable all //
432429
if (currentPageHasErrors.value) {
433-
// console.log('c', page.title, pageIdx, currentPageIdx);
434430
return false;
435431
}
436432
437-
438-
// & -------------------------------------------------- Conditions //
433+
// & -------------------------------------------------- Non Jump Ahead //
439434
// If not allowed to jump ahead //
440435
if (!jumpAhead.value) {
441436
442-
if (
443-
pageIdx < currentPageIdx &&
444-
pageIdx > firstNonEditableIndex &&
445-
pageIdx > lastNonEditableIndex &&
446-
currentPageIdx > lastNonEditableIndex &&
447-
currentPageIdx === lastPageIdx &&
448-
pageEditable
449-
) {
450-
// console.log('d', page.title, pageIdx, currentPageIdx);
451-
return true;
452-
}
437+
// If page is before the current page //
438+
if (pageIdx < currentPageIdx) {
439+
440+
// If the current page is before the last non editable page //
441+
if (currentPageIdx > lastNonEditableIndex) {
442+
443+
/**
444+
* If the page is before the first non editable page
445+
* And the page is before the last non editable page
446+
* And the current page is the last page
447+
* And the page is editable
448+
*/
449+
if (
450+
pageIdx > firstNonEditableIndex &&
451+
pageIdx > lastNonEditableIndex &&
452+
currentPageIdx === lastPageIdx &&
453+
pageEditable
454+
) {
455+
// console.log('d', page.title, pageIdx, currentPageIdx);
456+
return true;
457+
}
453458
454-
if (pageIdx < currentPageIdx && currentPageIdx > lastNonEditableIndex && !pageEditable) {
455-
// console.log('aa', page.title, pageIdx, currentPageIdx);
456-
return false;
457-
}
459+
// If the page is not editable //
460+
if (!pageEditable) {
461+
// console.log('aa', page.title, pageIdx, currentPageIdx);
462+
return false;
463+
}
464+
}
458465
459-
if (pageIdx < currentPageIdx && pageIdx < firstNonEditableIndex && currentPageIdx <= firstNonEditableIndex) {
460-
// console.log('ab', page.title, pageIdx, currentPageIdx);
461-
return true;
466+
/**
467+
* If the page is before the first non editable page
468+
* And the current page is before or equal to the first non editable page
469+
*/
470+
if (pageIdx < firstNonEditableIndex && currentPageIdx <= firstNonEditableIndex) {
471+
// console.log('ab', page.title, pageIdx, currentPageIdx);
472+
return true;
473+
}
462474
}
463475
476+
/**
477+
* If the page is before or equal to the first non editable page
478+
* And the current page is editable
479+
*/
464480
if (pageIdx <= firstNonEditableIndex && currentPageEditable) {
465481
// console.log('ac', page.title, pageIdx, currentPageIdx);
466482
return false;
467483
}
468484
469-
if (
470-
pageIdx < currentPageIdx &&
471-
pageIdx > firstNonEditableIndex &&
472-
pageIdx < lastNonEditableIndex &&
473-
currentPageIdx <= lastNonEditableIndex &&
474-
nextPageNotEditable &&
475-
pageEditable
476-
) {
477-
// console.log('ad', page.title, pageIdx, currentPageIdx);
478-
return true;
479-
}
485+
// If the page is before the current page //
486+
if (pageIdx < currentPageIdx) {
480487
481-
if (
482-
pageIdx < currentPageIdx &&
483-
pageIdx < lastNonEditableIndex &&
484-
pageNotEditable
485-
) {
486-
// console.log('ae', page.title, pageIdx, currentPageIdx);
487-
return false;
488-
}
488+
/**
489+
* If the page is after the first non editable page
490+
* And the page is before the last non editable page
491+
* And the current page is before or equal to the last non editable page
492+
* And the next page is not editable
493+
* And the page is editable
494+
*/
495+
if (
496+
pageIdx > firstNonEditableIndex &&
497+
pageIdx < lastNonEditableIndex &&
498+
currentPageIdx <= lastNonEditableIndex &&
499+
nextPageNotEditable &&
500+
pageEditable
501+
) {
502+
// console.log('ad', page.title, pageIdx, currentPageIdx);
503+
return true;
504+
}
489505
490-
// Allow previous pages to be revisited //
491-
if (
492-
pageIdx < currentPageIdx &&
493-
pageIdx > firstNonEditableIndex &&
494-
nextPageEditable &&
495-
currentPageIdx !== lastPageIdx
496-
) {
497-
// console.log('af', page.title, pageIdx, currentPageIdx);
498-
return true;
506+
/**
507+
* If the page is before the last non editable page
508+
* And the page is not editable
509+
*/
510+
if (pageIdx < lastNonEditableIndex && pageNotEditable) {
511+
// console.log('ae', page.title, pageIdx, currentPageIdx);
512+
return false;
513+
}
514+
515+
/**
516+
* If the page is before the first non editable page
517+
* And the next page is editable
518+
* And the current page is not the last page
519+
*/
520+
if (
521+
pageIdx > firstNonEditableIndex &&
522+
nextPageEditable &&
523+
currentPageIdx !== lastPageIdx
524+
) {
525+
// console.log('af', page.title, pageIdx, currentPageIdx);
526+
return true;
527+
}
499528
}
500529
501530
return false;
502531
}
503532
504-
533+
// & -------------------------------------------------- Jump Ahead //
505534
// If the page is before the last non editable page //
506535
if (pageIdx > lastNonEditableIndex) {
507536
@@ -521,21 +550,13 @@ function headerItemEnabled(page: Page): boolean {
521550
return false;
522551
}
523552
524-
/**
525-
* If the current page is equal to the last page
526-
* And the page is before the last non editable page
527-
*/
528-
if (currentPageIdx === lastPageIdx && pageIdx < lastNonEditableIndex) {
529-
// console.log('x', page.title, pageIdx, currentPageIdx);
530-
return false;
531-
}
532-
553+
// If the page is before the last non editable page //
554+
if (pageIdx < lastNonEditableIndex) {
533555
534-
/**
535-
* If the page is after the first non editable page
536-
* And the page is before the last non editable page
537-
*/
538-
if (pageIdx > firstNonEditableIndex && pageIdx < lastNonEditableIndex) {
556+
// If the current page is equal to the last page //
557+
if (currentPageIdx === lastPageIdx) {
558+
return false;
559+
}
539560
540561
// If the current page is after the first non editable page //
541562
if (pageIdx > firstNonEditableIndex) {
@@ -564,13 +585,10 @@ function headerItemEnabled(page: Page): boolean {
564585
}
565586
566587
// console.log('j-4', page.title, pageIdx, currentPageIdx);
588+
return false;
567589
}
568-
569-
// console.log('j', page.title, pageIdx, currentPageIdx);
570-
return false;
571590
}
572591
573-
574592
// If the page is after than the first non editable page //
575593
if (pageIdx > firstNonEditableIndex) {
576594
@@ -597,11 +615,7 @@ function headerItemEnabled(page: Page): boolean {
597615
* If the current page is before the page
598616
* And the page is before or equal to the first non editable page
599617
*/
600-
if (
601-
// firstNonEditableIndex !== -1 &&
602-
currentPageIdx > pageIdx &&
603-
pageIdx <= firstNonEditableIndex
604-
) {
618+
if (currentPageIdx > pageIdx && pageIdx <= firstNonEditableIndex) {
605619
// console.log('e-4', page.title, pageIdx, currentPageIdx);
606620
return false;
607621
}
@@ -635,7 +649,6 @@ function headerItemEnabled(page: Page): boolean {
635649
*/
636650
if (currentPageIdx >= pageIdx && previousPageEditable) {
637651
// console.log('currentPageIdx >= pageIdx', page.title, pageIdx, currentPageIdx);
638-
// check if next page is editable, if it is then enable the next step //
639652
return true;
640653
}
641654
@@ -644,15 +657,6 @@ function headerItemEnabled(page: Page): boolean {
644657
return false;
645658
}
646659
647-
/**
648-
* If the page is not editable
649-
* And the page is no the current page
650-
*/
651-
if (pageNotEditable && pageIdx !== currentPageIdx) {
652-
return false;
653-
}
654-
655-
// console.log('Fallback false', page.title, pageIdx, currentPageIdx);
656660
return false;
657661
}
658662

0 commit comments

Comments
 (0)