react-dynamic-help
Advanced tools
Comparing version 2.1.7 to 2.2.0
@@ -107,3 +107,4 @@ "use strict"; | ||
const stringified = JSON.stringify(this.systemState.userState); | ||
// a simplistic check to reduce writes to system storage | ||
// a simplistic check to reduce redundant writes to storage | ||
// (in theory, we can write the same change as often as we like, but that's messy) | ||
if (stringified !== this.prevUserState) { | ||
@@ -124,2 +125,3 @@ this.props.storage.saveState(stringified); | ||
enableFlow: this.enableFlow, | ||
reloadUserState: this.reloadUserState, | ||
getSystemStatus: () => ({ | ||
@@ -142,3 +144,2 @@ enabled: this.systemState.userState.systemEnabled, | ||
this.registerTargetCallback = (target) => { | ||
//console.log("Request to register", target); | ||
return { | ||
@@ -167,6 +168,6 @@ ref: (targetRef) => this.mapTarget(target, targetRef), | ||
const flow = state.flows[flowId]; | ||
//console.log("checking", itemId, flow); | ||
if (flow.items[flow.activeItem] === itemId) { | ||
state.items[itemId].visible = false; | ||
if (++flow.activeItem === flow.items.length) { | ||
state.userState.flows[flowId].seen = true; | ||
// turn off the flow and reset it | ||
@@ -196,5 +197,2 @@ flow.activeItem = 0; | ||
flow.activeItem = 0; | ||
if (enable) { | ||
this.systemState.userState.flows[flowId].seen = true; | ||
} | ||
this.propagateSystemState(); | ||
@@ -209,5 +207,3 @@ }; | ||
this.enableHelp = (enabled = true) => { | ||
if (enabled) { | ||
this.reloadUserState(); | ||
} | ||
(0, DynamicHelp_1.log)(this.props.debug, "enableHelp:", enabled); | ||
this.systemState.userState.systemEnabled = enabled; | ||
@@ -218,3 +214,4 @@ this.propagateSystemState(); | ||
(0, DynamicHelp_1.log)(this.props.debug, "Info: reloading user help state"); | ||
const stored = JSON.parse(this.props.storage.getState("{}")); | ||
this.prevUserState = this.props.storage.getState("{}"); | ||
const stored = JSON.parse(this.prevUserState); | ||
// Allow for new insertions from __resetUserState into older stored state, | ||
@@ -313,2 +310,3 @@ // and remove cruft from older stored state | ||
state.items[initialItemId].visible = true; | ||
state.userState.flows[flowId].seen = true; | ||
(0, DynamicHelp_1.log)(this.props.debug, "Flow reset to inactive", flowId); | ||
@@ -327,3 +325,2 @@ state.flows[flowId] = flow; | ||
render() { | ||
//console.log("Help Controller has state", this.state.systemState); | ||
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)(DynamicHelp_1.SystemContextProvider, Object.assign({ value: { | ||
@@ -330,0 +327,0 @@ systemState: this.state.systemState, |
@@ -92,4 +92,4 @@ "use strict"; | ||
const dismissFlow = () => { | ||
if (flowState) { | ||
controller.enableFlow(flowState.id, false); | ||
if (flowState && props.myId) { | ||
controller.signalItemDismissed(props.myId); | ||
} | ||
@@ -96,0 +96,0 @@ else { |
@@ -69,2 +69,3 @@ "use strict"; | ||
}; | ||
const uninitMsg = (functionName) => `Info: ${functionName} called before controller initialized`; | ||
/** | ||
@@ -95,23 +96,26 @@ * The component that connects the help flows to the app. | ||
ref: (target) => { | ||
(0, DynamicHelp_1.log)(debug, "Info: registration of target before controller initialised:", id, target); | ||
(0, DynamicHelp_1.log)(debug, uninitMsg("registration of target"), id, target); | ||
}, | ||
used: () => { | ||
(0, DynamicHelp_1.log)(debug, "Info: a target signalled used before controller initialized", id); | ||
(0, DynamicHelp_1.log)(debug, uninitMsg("target used"), id); | ||
}, | ||
}), | ||
triggerFlow: (flowId) => { | ||
(0, DynamicHelp_1.log)(debug, "Info: triggerFlow called before controller initialized", flowId); | ||
(0, DynamicHelp_1.log)(debug, uninitMsg("triggerFlow"), flowId); | ||
}, | ||
enableFlow: (flow, enabled) => { | ||
(0, DynamicHelp_1.log)(debug, "Info: enableFlow called before controller initialized", flow, enabled); | ||
(0, DynamicHelp_1.log)(debug, uninitMsg("enableFlow"), flow, enabled); | ||
}, | ||
reloadUserState: () => { | ||
(0, DynamicHelp_1.log)(debug, uninitMsg("reloadUserState")); | ||
}, | ||
signalUsed: (target) => { | ||
(0, DynamicHelp_1.log)(debug, "Info: signalUsed called before controller initialized", target); | ||
(0, DynamicHelp_1.log)(debug, uninitMsg("signalUsed"), target); | ||
}, | ||
getFlowInfo: () => { | ||
(0, DynamicHelp_1.log)(debug, "Info: getFlowInfo called before controller initialized."); | ||
(0, DynamicHelp_1.log)(debug, uninitMsg("getFlowInfo")); | ||
return []; | ||
}, | ||
enableHelp: (enabled) => { | ||
(0, DynamicHelp_1.log)(debug, "Info: enableHelp called before controller initialised", enabled); | ||
(0, DynamicHelp_1.log)(debug, uninitMsg("enableHelp"), enabled); | ||
}, | ||
@@ -122,3 +126,3 @@ getSystemStatus: () => ({ | ||
resetHelp: () => { | ||
(0, DynamicHelp_1.log)(debug, "Info: App signalled help-reset before controller initialized."); | ||
(0, DynamicHelp_1.log)(debug, uninitMsg("helpReset")); | ||
}, | ||
@@ -125,0 +129,0 @@ }); |
@@ -16,2 +16,3 @@ export declare type FlowId = string; | ||
enableFlow: FlowSwitch; | ||
reloadUserState: () => void; | ||
getSystemStatus: () => HelpSystemStatus; | ||
@@ -18,0 +19,0 @@ resetHelp: () => void; |
@@ -81,3 +81,4 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime"; | ||
const stringified = JSON.stringify(this.systemState.userState); | ||
// a simplistic check to reduce writes to system storage | ||
// a simplistic check to reduce redundant writes to storage | ||
// (in theory, we can write the same change as often as we like, but that's messy) | ||
if (stringified !== this.prevUserState) { | ||
@@ -98,2 +99,3 @@ this.props.storage.saveState(stringified); | ||
enableFlow: this.enableFlow, | ||
reloadUserState: this.reloadUserState, | ||
getSystemStatus: () => ({ | ||
@@ -116,3 +118,2 @@ enabled: this.systemState.userState.systemEnabled, | ||
this.registerTargetCallback = (target) => { | ||
//console.log("Request to register", target); | ||
return { | ||
@@ -141,6 +142,6 @@ ref: (targetRef) => this.mapTarget(target, targetRef), | ||
const flow = state.flows[flowId]; | ||
//console.log("checking", itemId, flow); | ||
if (flow.items[flow.activeItem] === itemId) { | ||
state.items[itemId].visible = false; | ||
if (++flow.activeItem === flow.items.length) { | ||
state.userState.flows[flowId].seen = true; | ||
// turn off the flow and reset it | ||
@@ -170,5 +171,2 @@ flow.activeItem = 0; | ||
flow.activeItem = 0; | ||
if (enable) { | ||
this.systemState.userState.flows[flowId].seen = true; | ||
} | ||
this.propagateSystemState(); | ||
@@ -183,5 +181,3 @@ }; | ||
this.enableHelp = (enabled = true) => { | ||
if (enabled) { | ||
this.reloadUserState(); | ||
} | ||
log(this.props.debug, "enableHelp:", enabled); | ||
this.systemState.userState.systemEnabled = enabled; | ||
@@ -192,3 +188,4 @@ this.propagateSystemState(); | ||
log(this.props.debug, "Info: reloading user help state"); | ||
const stored = JSON.parse(this.props.storage.getState("{}")); | ||
this.prevUserState = this.props.storage.getState("{}"); | ||
const stored = JSON.parse(this.prevUserState); | ||
// Allow for new insertions from __resetUserState into older stored state, | ||
@@ -287,2 +284,3 @@ // and remove cruft from older stored state | ||
state.items[initialItemId].visible = true; | ||
state.userState.flows[flowId].seen = true; | ||
log(this.props.debug, "Flow reset to inactive", flowId); | ||
@@ -301,3 +299,2 @@ state.flows[flowId] = flow; | ||
render() { | ||
//console.log("Help Controller has state", this.state.systemState); | ||
return (_jsx(_Fragment, { children: _jsxs(SystemContextProvider, Object.assign({ value: { | ||
@@ -304,0 +301,0 @@ systemState: this.state.systemState, |
@@ -66,4 +66,4 @@ var __rest = (this && this.__rest) || function (s, e) { | ||
const dismissFlow = () => { | ||
if (flowState) { | ||
controller.enableFlow(flowState.id, false); | ||
if (flowState && props.myId) { | ||
controller.signalItemDismissed(props.myId); | ||
} | ||
@@ -70,0 +70,0 @@ else { |
@@ -43,2 +43,3 @@ var __rest = (this && this.__rest) || function (s, e) { | ||
}; | ||
const uninitMsg = (functionName) => `Info: ${functionName} called before controller initialized`; | ||
/** | ||
@@ -69,23 +70,26 @@ * The component that connects the help flows to the app. | ||
ref: (target) => { | ||
log(debug, "Info: registration of target before controller initialised:", id, target); | ||
log(debug, uninitMsg("registration of target"), id, target); | ||
}, | ||
used: () => { | ||
log(debug, "Info: a target signalled used before controller initialized", id); | ||
log(debug, uninitMsg("target used"), id); | ||
}, | ||
}), | ||
triggerFlow: (flowId) => { | ||
log(debug, "Info: triggerFlow called before controller initialized", flowId); | ||
log(debug, uninitMsg("triggerFlow"), flowId); | ||
}, | ||
enableFlow: (flow, enabled) => { | ||
log(debug, "Info: enableFlow called before controller initialized", flow, enabled); | ||
log(debug, uninitMsg("enableFlow"), flow, enabled); | ||
}, | ||
reloadUserState: () => { | ||
log(debug, uninitMsg("reloadUserState")); | ||
}, | ||
signalUsed: (target) => { | ||
log(debug, "Info: signalUsed called before controller initialized", target); | ||
log(debug, uninitMsg("signalUsed"), target); | ||
}, | ||
getFlowInfo: () => { | ||
log(debug, "Info: getFlowInfo called before controller initialized."); | ||
log(debug, uninitMsg("getFlowInfo")); | ||
return []; | ||
}, | ||
enableHelp: (enabled) => { | ||
log(debug, "Info: enableHelp called before controller initialised", enabled); | ||
log(debug, uninitMsg("enableHelp"), enabled); | ||
}, | ||
@@ -96,3 +100,3 @@ getSystemStatus: () => ({ | ||
resetHelp: () => { | ||
log(debug, "Info: App signalled help-reset before controller initialized."); | ||
log(debug, uninitMsg("helpReset")); | ||
}, | ||
@@ -99,0 +103,0 @@ }); |
@@ -16,2 +16,3 @@ export declare type FlowId = string; | ||
enableFlow: FlowSwitch; | ||
reloadUserState: () => void; | ||
getSystemStatus: () => HelpSystemStatus; | ||
@@ -18,0 +19,0 @@ resetHelp: () => void; |
{ | ||
"name": "react-dynamic-help", | ||
"description": "React Dynamic Help - Create flows of helpful popups in your React App", | ||
"version": "2.1.7", | ||
"version": "2.2.0", | ||
"repository": { | ||
@@ -6,0 +6,0 @@ "type": "git", |
@@ -10,3 +10,3 @@ # react-dynamic-help | ||
V 2.1.7 - As integrated with [online-go.com](https://online-go.com). | ||
V 2.2.0 - As integrated with [online-go.com](https://online-go.com). | ||
@@ -13,0 +13,0 @@ Demo at https://github.com/GreenAsJade/react-dynamic-help-demo |
118683
2557