+
+
+ Beta
+
+ New Simulation
+
+ This is a simulator to simulate the form submission. This is useful
+ for testing purposes.{" "}
+ Note: Closing this page will stop the simulation.
+
+
+
+
+ Number of Bots
+ setN(Number(e.target.value))}
+ />
+
+
+
+ Max Q{" "}
+
+ (max number of concurrent submissions)
+
+
+ setMaxQ(v[0])}
+ />
+ {maxq}
+
+
+
+ Delay in Millisecond{" "}
+ (1s = 1,000ms)
+
+ setDelay(v[0])}
+ />
+ {delay}ms
+
+
+
+ Random Coefficient{" "}
+
+ (randomness across simulation)
+
+
+ setRandomness(v[0])}
+ />
+ {randomness}
+
+
+
+ Start Simulation
+
+
+
+ About This Simulation
+
+
+
+ Note: Starting simulation WILL INSERT {" "}
+ actual data.
+
+
+
+
+ Recommended to run simulations on newly created forms, only.
+
+ Existing data will not be affected.
+ This will create new customer entries
+ Bots will act as humans and submit the form.
+ Gloabl attributes such as Inventory will be affected
+
+ You will have to clean up the data manually after the
+ simulation
+
+
+ This is only recommended for testing purposes and before going
+ production. (You will be charged for the simulation, as it uses
+ real data.)
+
+
+
+
+
+
+ Cancel
+
+
+ {
+ onStartQueued?.({
+ n,
+ delaybetween: delay,
+ queue: maxq,
+ randomness,
+ });
+ }}
+ >
+ Understood, Start Simulation
+
+
+
+
+
+
+ );
+}
+
+function WillStartSoon({ at, onExpire }: { at: Date; onExpire?: () => void }) {
+ const {
+ seconds,
+ minutes,
+ hours,
+ days,
+ isRunning,
+ start,
+ pause,
+ resume,
+ restart,
+ } = useTimer({
+ // +10 seconds
+ expiryTimestamp: at,
+ onExpire,
+ });
+
+ return (
+