We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent b720b69 commit 65eb326Copy full SHA for 65eb326
2 files changed
packages/dev-playground/src/Main.res
@@ -832,23 +832,20 @@ module App = {
832
}
833
834
let share = async () => {
835
- try {
836
- let _ = await UrlState.copyUrlState(
837
- Signal.peek(source),
838
- Signal.peek(compilerVersion),
839
- Signal.peek(moduleSystem),
840
- Signal.peek(warnFlags),
841
- Signal.peek(jsxPreserveMode),
842
- Signal.peek(experimentalFeatures),
843
- )
844
- showToast("Link copied")
845
- } catch {
846
- | JsExn(_) => showToast("Could not copy link")
847
- | _ => showToast("Could not copy link")
+ switch await UrlState.copyUrlState(
+ Signal.peek(source),
+ Signal.peek(compilerVersion),
+ Signal.peek(moduleSystem),
+ Signal.peek(warnFlags),
+ Signal.peek(jsxPreserveMode),
+ Signal.peek(experimentalFeatures),
+ ) {
+ | Ok() => showToast("Link copied")
+ | Error(message) => showToast(message)
848
849
850
851
- share()->ignore
+ share()->Promise.ignore
852
853
854
let loadCompiler = (version, compileAfterLoad) => {
packages/dev-playground/src/UrlState.res
@@ -241,19 +241,28 @@ let copyUrlState = async (
241
warnFlags,
242
jsxPreserveMode,
243
experimentalFeatures,
244
-) => {
245
- replaceSequence := replaceSequence.contents + 1
246
- let encoded = await encodeCode(source)
247
- applyUrlState(
248
- encoded,
249
- compilerVersion,
250
- moduleSystem,
251
- warnFlags,
252
- jsxPreserveMode,
253
- experimentalFeatures,
254
+): result<unit, string> => {
+ try {
+ replaceSequence := replaceSequence.contents + 1
+ let sequence = replaceSequence.contents
+ let encoded = await encodeCode(source)
+ if sequence === replaceSequence.contents {
+ applyUrlState(
+ encoded,
+ compilerVersion,
+ moduleSystem,
+ warnFlags,
255
+ jsxPreserveMode,
256
+ experimentalFeatures,
257
+ )
258
- let href = windowHref()
- let _ = await copyText(href)
- href
259
+ let href = windowHref()
260
+ let _ = await copyText(href)
261
+ Ok()
262
+ } else {
263
+ Error("Link changed before it could be copied")
264
+ }
265
+ } catch {
266
+ | _ => Error("Could not copy link")
267
268
0 commit comments