Complete Framework7 swipe gestures

This commit is contained in:
Jonathan Sykes
2026-10-06 04:12:15 +08:00
parent d4497b0c05
commit 034b3df7ae
8 changed files with 113 additions and 12 deletions

View File

@@ -1,9 +1,9 @@
const test = require('node:test');
const assert = require('node:assert');
const { cardActions, swipeDirection } = require('./f7-layout');
const { cardActions, swipeDirection, tabSwipeIndex } = require('./f7-layout');
test('cardActions: queue view has no Queue action, removable rows get Remove', () => {
assert.deepStrictEqual(cardActions('queue', true).left, []);
test('cardActions: every view gets Queue, removable rows get Playlist and Remove', () => {
assert.deepStrictEqual(cardActions('queue', true).left.map((a) => a.act), ['queue']);
assert.deepStrictEqual(cardActions('queue', true).right.map((a) => a.act), ['playlist', 'remove']);
assert.deepStrictEqual(cardActions('search', false).left.map((a) => a.act), ['queue']);
assert.deepStrictEqual(cardActions('search', false).right.map((a) => a.act), ['playlist']);
@@ -17,3 +17,11 @@ test('swipeDirection classifies clear swipes and ignores short or diagonal drags
assert.strictEqual(swipeDirection(60, 60), null);
assert.strictEqual(swipeDirection(40, 0, 36), 'right');
});
test('tabSwipeIndex moves between bottom tabs and clamps at either end', () => {
assert.strictEqual(tabSwipeIndex(0, 5, 'left'), 1);
assert.strictEqual(tabSwipeIndex(3, 5, 'right'), 2);
assert.strictEqual(tabSwipeIndex(4, 5, 'left'), 4);
assert.strictEqual(tabSwipeIndex(0, 5, 'right'), 0);
assert.strictEqual(tabSwipeIndex(2, 5, 'up'), -1);
});