openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
1 lines • 1.55 kB
JavaScript
import{n as e}from"./rolldown-runtime-8BhlS34s.js";import{Ft as t,It as n,Pt as r,Xn as i,Zn as a,b as o,y as s}from"./control-ui-core-9qYjK5B2.js";import{A as c,O as l,k as u}from"./ui-DuRgK6kL.js";import{n as d,t as f}from"./user-prefs-request-WwABZdqk.js";async function p(e,r,a){if(!e||!a)return{ok:!1,reason:`unavailable`,error:`Profile preferences are unavailable.`};let s=r.theme!==void 0||r.themeMode!==void 0;s&&t(e);try{if(s){let t={...r.accent===void 0?{}:{accent:r.accent},...r.fontUi===void 0?{}:{fontUi:r.fontUi},...r.fontChat===void 0?{}:{fontChat:r.fontChat}};return{ok:!0,value:await e.request(`themes.set`,{...r.theme===void 0?{}:{id:r.theme},...r.themeMode===void 0?{}:{mode:r.themeMode},...Object.keys(t).length?{appearance:t}:{}}),refresh:{ok:!0}}}let t=Object.fromEntries(Object.entries(r).flatMap(([e,t])=>o(e)?[[l[e],t]]:[])),i=await n(e,{entries:t});return i.status===`ok`?{ok:!0,value:i,refresh:{ok:!0}}:{ok:!1,reason:`rejected`,error:`Profile preferences are unavailable.`}}catch(e){return{ok:!1,reason:e instanceof i&&(e.gatewayCode===`INVALID_REQUEST`||e.gatewayCode===`FORBIDDEN`)?`rejected`:`error`,error:e instanceof Error?e.message:String(e)}}finally{s&&t(e)}}async function m(e,t){let n=await d(e,t,{keys:Object.values(l)});if(n.status!==`ok`)return null;let r={};for(let[e,t]of Object.entries(l)){if(!o(e))continue;let i=c(t,n.entries[t]);i!==void 0&&Object.assign(r,{[e]:i})}return r}function h(){return(h=e((()=>{u(),a(),s(),r(),f()})))()}h();export{m as readProfileAppearancePrefs,p as writeProfileAppearancePrefs};