@fremtind/jkl-feedback-react
Version:
Jøkul react feedback component
115 lines (114 loc) • 5.41 kB
JavaScript
;
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var MainQuestion_exports = {};
__export(MainQuestion_exports, {
MainQuestion: () => MainQuestion
});
module.exports = __toCommonJS(MainQuestion_exports);
var import_jkl_button_react = require("@fremtind/jkl-button-react");
var import_jkl_react_hooks = require("@fremtind/jkl-react-hooks");
var import_classnames = __toESM(require("classnames"));
var import_react = __toESM(require("react"));
var import_feedbackContext = require("../feedbackContext");
var import_FeedbackSuccess = require("../FeedbackSuccess");
var import_questions = require("../questions");
var import_utils = require("../utils");
var import_mainQuestionContext = require("./mainQuestionContext");
var import_useMainQuestion = require("./useMainQuestion");
const defaultSuccessMessage = {
title: "Takk for tilbakemeldingen!",
children: "Husk at vi ikke kan besvare meldinger fra dette skjemaet. Kontakt gjerne din forsikringsr\xE5dgiver om du har flere sp\xF8rsm\xE5l."
};
const MainQuestion = ({
label,
options,
type,
addOnQuestion,
successMessage = defaultSuccessMessage,
helpLabel,
onSubmit
}) => {
const mainQuestionState = (0, import_useMainQuestion.useMainQuestion)(onSubmit);
const { setFeedbackSubmitted, contactSubmitted, landmarkLabel } = (0, import_feedbackContext.useFeedbackContext)();
const { handleSubmit, currentValue, setCurrentValue, submitted } = mainQuestionState;
const [submitWrapperRef] = (0, import_jkl_react_hooks.useAnimatedHeight)(
currentValue !== void 0
);
(0, import_react.useEffect)(() => {
setFeedbackSubmitted(submitted);
}, [submitted, setFeedbackSubmitted]);
const MainQuestionComp = (0, import_utils.getQuestionFromType)(type);
return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, !submitted && /* @__PURE__ */ import_react.default.createElement(import_mainQuestionContext.MainQuestionContextProvider, { state: mainQuestionState }, /* @__PURE__ */ import_react.default.createElement("form", { onSubmit: handleSubmit, "aria-label": landmarkLabel }, /* @__PURE__ */ import_react.default.createElement(
MainQuestionComp,
{
label,
options,
helpLabel
}
), /* @__PURE__ */ import_react.default.createElement(
"div",
{
ref: submitWrapperRef,
className: (0, import_classnames.default)({
"jkl-feedback__submit-wrapper": true,
"jkl-feedback__submit-wrapper--hidden": currentValue === void 0
})
},
addOnQuestion && /* @__PURE__ */ import_react.default.createElement(
import_questions.AddonQuestion,
{
helpLabel: typeof addOnQuestion === "object" ? addOnQuestion.helpLabel : void 0,
label: typeof addOnQuestion === "object" ? addOnQuestion.label : void 0
}
),
/* @__PURE__ */ import_react.default.createElement("div", { className: "jkl-spacing-xl--top" }, /* @__PURE__ */ import_react.default.createElement(import_jkl_button_react.PrimaryButton, { className: "jkl-spacing-xl--right" }, "Send"), /* @__PURE__ */ import_react.default.createElement(
import_jkl_button_react.TertiaryButton,
{
type: "button",
onClick: () => setCurrentValue(void 0)
},
"Avbryt"
))
))), submitted && !contactSubmitted && /* @__PURE__ */ import_react.default.createElement(import_FeedbackSuccess.FeedbackSuccess, __spreadValues({}, successMessage)));
};
//# sourceMappingURL=MainQuestion.js.map