184 lines
4.9 KiB
JavaScript
184 lines
4.9 KiB
JavaScript
"use strict";
|
|
|
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
|
|
exports.__esModule = true;
|
|
exports.default = SwipeOver;
|
|
|
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
|
|
var _react = _interopRequireDefault(require("react"));
|
|
|
|
var _ = _interopRequireDefault(require("../"));
|
|
|
|
var _gsap = require("gsap");
|
|
|
|
var _jsxFileName = "/Users/tylerbarnes/Documents/GitHub/transitionlink-workspace/gatsby-plugin-transition-link/src/AniLink/Swipe.js";
|
|
var boxShadow = "0 0 100px 10px rgba(0, 0, 0, 0.12941176470588237)";
|
|
|
|
var swipeTopDirection = function swipeTopDirection(direction, reverse) {
|
|
var polarityPos = reverse ? "-" : "+";
|
|
var polarityNeg = reverse ? "+" : "-";
|
|
|
|
switch (direction) {
|
|
case "down":
|
|
return {
|
|
y: polarityPos + "=100vh",
|
|
ease: _gsap.Power1.easeIn
|
|
};
|
|
|
|
case "up":
|
|
return {
|
|
y: polarityNeg + "=100vh",
|
|
ease: _gsap.Power1.easeIn
|
|
};
|
|
|
|
case "left":
|
|
return {
|
|
x: polarityNeg + "=100%",
|
|
ease: _gsap.Power1.easeIn
|
|
};
|
|
|
|
default:
|
|
return {
|
|
x: polarityPos + "=100%",
|
|
ease: _gsap.Power1.easeIn
|
|
};
|
|
}
|
|
};
|
|
|
|
var swipeBottomDirection = function swipeBottomDirection(direction, reverse, offset) {
|
|
if (reverse === void 0) {
|
|
reverse = false;
|
|
}
|
|
|
|
if (offset === void 0) {
|
|
offset = 40;
|
|
}
|
|
|
|
var polarityPos = reverse ? "-" : "";
|
|
var polarityNeg = reverse ? "" : "-";
|
|
|
|
switch (direction) {
|
|
case "down":
|
|
return {
|
|
y: "" + polarityNeg + offset + "vh",
|
|
ease: _gsap.Power1.easeIn
|
|
};
|
|
|
|
case "up":
|
|
return {
|
|
y: "" + polarityPos + offset + "vh",
|
|
ease: _gsap.Power1.easeIn
|
|
};
|
|
|
|
case "left":
|
|
return {
|
|
x: "" + polarityPos + offset + "%",
|
|
ease: _gsap.Power1.easeIn
|
|
};
|
|
|
|
default:
|
|
return {
|
|
x: "" + polarityNeg + offset + "%",
|
|
ease: _gsap.Power1.easeIn
|
|
};
|
|
}
|
|
};
|
|
|
|
var swipe = function swipe(_ref) {
|
|
var node = _ref.node,
|
|
exit = _ref.exit,
|
|
direction = _ref.direction,
|
|
top = _ref.top,
|
|
triggerName = _ref.triggerName,
|
|
entryOffset = _ref.entryOffset;
|
|
var scrollTop = document.scrollingElement && document.scrollingElement.scrollTop || document.body.scrollTop || window.pageYOffset;
|
|
|
|
if (triggerName === "entry" && top === "entry") {
|
|
return new _gsap.TimelineMax().set(node, {
|
|
boxShadow: boxShadow,
|
|
overflowY: "hidden",
|
|
height: "100vh",
|
|
scrollTop: scrollTop
|
|
}).from(node, exit.length, swipeTopDirection(direction, true)).set(node, {
|
|
overflowY: "initial"
|
|
});
|
|
} else if (triggerName === "entry") {
|
|
return new _gsap.TimelineMax().from(node, exit.length, swipeBottomDirection(direction, false, entryOffset));
|
|
} else if (triggerName === "exit" && top === "exit") {
|
|
return new _gsap.TimelineMax().set(node, {
|
|
boxShadow: boxShadow,
|
|
overflowY: "hidden",
|
|
height: "100vh",
|
|
scrollTop: scrollTop
|
|
}).to(node, exit.length, swipeTopDirection(direction)).set(node, {
|
|
overflowY: "initial"
|
|
});
|
|
} else {
|
|
return new _gsap.TimelineMax().set(node, {
|
|
boxShadow: boxShadow,
|
|
overflowY: "hidden",
|
|
height: "100vh",
|
|
scrollTop: scrollTop
|
|
}).to(node, exit.length, swipeBottomDirection(direction, true, entryOffset)).set(node, {
|
|
overflowY: "initial"
|
|
});
|
|
}
|
|
};
|
|
|
|
function SwipeOver(_ref2) {
|
|
var exit = _ref2.exit,
|
|
entry = _ref2.entry,
|
|
removedProp = _ref2.swipe,
|
|
_ref2$entryOffset = _ref2.entryOffset,
|
|
entryOffset = _ref2$entryOffset === void 0 ? 40 : _ref2$entryOffset,
|
|
props = (0, _objectWithoutPropertiesLoose2.default)(_ref2, ["exit", "entry", "swipe", "entryOffset"]);
|
|
var top = props.top || "exit";
|
|
var exitLength = props.duration || 0.7;
|
|
var entryLength = exitLength / 3.5;
|
|
var entryZ = top === "entry" ? 1 : 0;
|
|
var exitZ = top === "exit" ? 1 : 0;
|
|
return _react.default.createElement(_.default, (0, _extends2.default)({
|
|
exit: {
|
|
length: exitLength,
|
|
trigger: function trigger(_ref3) {
|
|
var node = _ref3.node,
|
|
exit = _ref3.exit;
|
|
return swipe({
|
|
node: node,
|
|
exit: exit,
|
|
direction: props.direction,
|
|
top: top,
|
|
entryOffset: entryOffset,
|
|
triggerName: "exit"
|
|
});
|
|
},
|
|
zIndex: exitZ
|
|
},
|
|
entry: {
|
|
length: entryLength,
|
|
trigger: function trigger(_ref4) {
|
|
var node = _ref4.node,
|
|
exit = _ref4.exit;
|
|
return swipe({
|
|
node: node,
|
|
exit: exit,
|
|
direction: props.direction,
|
|
top: top,
|
|
entryOffset: entryOffset,
|
|
triggerName: "entry"
|
|
});
|
|
},
|
|
zIndex: entryZ
|
|
}
|
|
}, props, {
|
|
__source: {
|
|
fileName: _jsxFileName,
|
|
lineNumber: 98
|
|
},
|
|
__self: this
|
|
}), props.children);
|
|
} |