@atlaskit/spotlight
Version:
A spotlight introduces users to points of interest, from focused messages to multi-step tours.
216 lines (212 loc) • 7.42 kB
JavaScript
/* context.tsx generated by @compiled/babel-plugin v3.0.2 */
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.SpotlightContextProvider = exports.SpotlightContext = void 0;
var _react = _interopRequireWildcard(require("react"));
var React = _react;
var _runtime = require("@compiled/react/runtime");
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
// eslint-disable-next-line @repo/internal/react/consistent-types-definitions
// eslint-disable-next-line @repo/internal/react/require-jsdoc
var SpotlightContext = exports.SpotlightContext = /*#__PURE__*/(0, _react.createContext)({
card: {
ref: null,
setRef: function setRef() {
return undefined;
},
placement: 'bottom-end',
setPlacement: function setPlacement() {
return undefined;
},
motion: undefined,
setMotion: function setMotion() {
return undefined;
}
},
heading: {
id: '',
setId: function setId() {
return undefined;
}
},
popoverContent: {
ref: undefined,
setRef: function setRef() {
return undefined;
},
positionArea: undefined,
setPositionArea: function setPositionArea() {
return undefined;
},
update: function update() {
return new Promise(function () {
return null;
});
},
setUpdate: function setUpdate() {
return new Promise(function () {
return null;
});
},
dismiss: {
current: function current() {
return undefined;
}
},
setDismiss: function setDismiss() {
return undefined;
}
},
target: {
ref: {
current: null
},
setRef: function setRef() {
return undefined;
}
},
primaryAction: {
action: {
current: function current() {
return undefined;
}
},
setAction: function setAction() {
return undefined;
}
},
secondaryAction: {
action: {
current: function current() {
return undefined;
}
},
setAction: function setAction() {
return undefined;
}
}
});
/**
* Props accepted by `SpotlightContextProvider`.
*/
// eslint-disable-next-line @repo/internal/react/consistent-types-definitions
// eslint-disable-next-line @repo/internal/react/require-jsdoc
// eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports
var SpotlightContextProvider = exports.SpotlightContextProvider = function SpotlightContextProvider(_ref) {
var children = _ref.children,
targetRef = _ref.targetRef;
var id = (0, _react.useId)();
var defaultTargetRef = (0, _react.useRef)(null);
var _useState = (0, _react.useState)(),
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
motion = _useState2[0],
setMotion = _useState2[1];
var _useState3 = (0, _react.useState)('bottom-end'),
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
placement = _useState4[0],
setPlacement = _useState4[1];
var _useState5 = (0, _react.useState)("".concat(id, "-heading")),
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
headingId = _useState6[0],
setHeadingId = _useState6[1];
var _useState7 = (0, _react.useState)(function () {
return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
return _regenerator.default.wrap(function (_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
return _context.abrupt("return", undefined);
case 1:
case "end":
return _context.stop();
}
}, _callee);
}));
}),
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
update = _useState8[0],
setUpdate = _useState8[1];
var _useState9 = (0, _react.useState)(),
_useState0 = (0, _slicedToArray2.default)(_useState9, 2),
popoverRef = _useState0[0],
setPopoverRef = _useState0[1];
var _useState1 = (0, _react.useState)(),
_useState10 = (0, _slicedToArray2.default)(_useState1, 2),
positionArea = _useState10[0],
setPositionArea = _useState10[1];
var _useState11 = (0, _react.useState)(null),
_useState12 = (0, _slicedToArray2.default)(_useState11, 2),
cardRef = _useState12[0],
setCardRef = _useState12[1];
var _useState13 = (0, _react.useState)(defaultTargetRef),
_useState14 = (0, _slicedToArray2.default)(_useState13, 2),
internalTargetRef = _useState14[0],
setInternalTargetRef = _useState14[1];
// `targetRef` (the prop) takes precedence when provided. Its identity is
// allowed to change over time; downstream consumers that depend on
// `target.ref` identity (e.g. `useAnchoredPopover`'s effect deps) will
// re-run accordingly.
var effectiveTargetRef = targetRef !== null && targetRef !== void 0 ? targetRef : internalTargetRef;
var dismissRef = (0, _react.useRef)(function () {
return undefined;
});
var setDismiss = function setDismiss(dismissFn) {
dismissRef.current = dismissFn;
};
var secondaryActionRef = (0, _react.useRef)(function () {
return undefined;
});
var setSecondaryAction = function setSecondaryAction(actionFn) {
secondaryActionRef.current = actionFn;
};
var primaryActionRef = (0, _react.useRef)(function () {
return undefined;
});
var setPrimaryAction = function setPrimaryAction(actionFn) {
primaryActionRef.current = actionFn;
};
return /*#__PURE__*/React.createElement(SpotlightContext.Provider, {
value: {
card: {
ref: cardRef,
setRef: setCardRef,
placement: placement,
setPlacement: setPlacement,
motion: motion,
setMotion: setMotion
},
heading: {
id: headingId,
setId: setHeadingId
},
popoverContent: {
ref: popoverRef,
setRef: setPopoverRef,
positionArea: positionArea,
setPositionArea: setPositionArea,
update: update,
setUpdate: setUpdate,
dismiss: dismissRef,
setDismiss: setDismiss
},
target: {
ref: effectiveTargetRef,
setRef: setInternalTargetRef
},
primaryAction: {
action: primaryActionRef,
setAction: setPrimaryAction
},
secondaryAction: {
action: secondaryActionRef,
setAction: setSecondaryAction
}
}
}, children);
};