{
+ const clip = (await navigator.clipboard.read())[0];
+
+ if (!clip) return showToast("Your clipboard is empty.", Toasts.Type.FAILURE);
+
+ if (!clip.types.includes("text/plain"))
+ return showToast("Your clipboard doesn't have valid settings data.", Toasts.Type.FAILURE);
+
+ try {
+ var potentialSettings: Record
=
+ JSON.parse(await clip.getType("text/plain").then(b => b.text()));
+ } catch (e) {
+ return showToast("Your clipboard doesn't have valid settings data.", Toasts.Type.FAILURE);
+ }
+
+ for (const [key, value] of Object.entries(potentialSettings)) {
+ if (Object.prototype.hasOwnProperty.call(themeSettings, key))
+ themeSettings[key] = value;
+ }
+
+ showToast("Pasted theme settings from clipboard.", Toasts.Type.SUCCESS);
+ }}>
+
+
+ )}
+