From 46b4b01d23e63d2c5a912862d2f558bccdcde7b5 Mon Sep 17 00:00:00 2001 From: Frank Noirot Date: Fri, 21 Feb 2025 13:47:36 -0500 Subject: [PATCH] [Refactor] decouple settingsMachine from React (#5142) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remove unnecessary console.log * Create a global appMachine * Strip authMachine of side-effects * Replace react-bound authMachine use with XState actor use * Fix import goof * Register auth commands directly! * Don't provide anything to settingsMachine from React * Remove unecessary async * Make it possible to load project settings via a sent event, without React * Make settingsMachine ready to be an actor * Remove settingsLoader use * Replace all useSettingsAuthContext use with direct actor use * Add logic to clear project settings, fmt * fmt * Clear and load project settings from routeLoaders, but using actor * Remove useRefreshSettings * Restore use of useToken() that wasn't working for some reason * Migrate useFileSystemWatcher use to RouteProvider * Surface wasm_bindgen unavailable error to console * Remove unnecessary use of Jest settings wrappers * Replace dynamic import with actor.getSnapshot * Migrate system theme and theme color watching from useEffects to actors/actions * Migrate cursor color effect * Remove unused code that is now in RouteProvider * Migrate route commands registration further down for now, out of SettingsAuthProvider * Migrate settings command registration out of SettingsAuthProvider.tsx * Delete SettingsAuthProvider.tsx! * Remove unused settingsLoader! * fmt and remove comments * Use actor for routeLoader * Fix project read error due to uninitialized WASM * Fix user settings load error due to uninitialized WASM * Move settingsActor into appActor as a spawned child * Trying to fix unit tests * Remove unused imports and demo window attachments * fmt * Fix testing issues caused by circular dependency * Add `setThemeColor` to a few actions list it was missing from * fmt * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * Fix "Execute AST" action in browser, where currentProject is `undefined` * Update commands list when currentProject changes * Fix `clearProjectSettings`, which was passing along non-settings context * Fix onboarding test that actually needed the onboarding initially dismissed * Add scrollIntoView to make this test more reliable * @lf94's feedback I missed I got distracted by a million other things last week * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores)" This reverts commit 129226c6eff5286279e693bd03b390b55283b49e. * fmt * revert bad snapshot * Fix up camera movement test locator * Fix test that was flipping the user settings without waiting * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) --------- Co-authored-by: github-actions[bot] --- e2e/playwright/onboarding-tests.spec.ts | 19 +- ...-via-command-bar-1-Google-Chrome-linux.png | Bin 55467 -> 55465 bytes ...e-with-none-z-up-1-Google-Chrome-linux.png | Bin 77837 -> 78035 bytes ...-load---solid-2d-1-Google-Chrome-linux.png | Bin 51768 -> 51792 bytes ...r-opening-window-1-Google-Chrome-linux.png | Bin 129895 -> 129892 bytes ...ld-be-stable--XZ-1-Google-Chrome-linux.png | Bin 56431 -> 56428 bytes ...ld-be-stable--YZ-1-Google-Chrome-linux.png | Bin 50365 -> 50361 bytes .../testing-camera-movement.spec.ts | 13 +- e2e/playwright/testing-settings.spec.ts | 1 + src/App.tsx | 8 +- src/Router.tsx | 35 +- src/clientSideScene/ClientSideSceneComp.tsx | 6 +- src/components/CameraProjectionToggle.tsx | 14 +- .../CommandBar/CommandBarKclInput.tsx | 8 +- src/components/DownloadAppBanner.tsx | 6 +- src/components/FileMachineProvider.tsx | 50 ++- src/components/HelpMenu.tsx | 5 +- src/components/LspProvider.tsx | 1 - src/components/ModelingMachineProvider.tsx | 22 +- .../ModelingSidebar/ModelingPane.tsx | 6 +- .../ModelingPanes/KclEditorPane.tsx | 6 +- .../ModelingSidebar/ModelingSidebar.tsx | 14 +- .../NetworkHealthIndicator.test.tsx | 7 +- src/components/ProjectSidebarMenu.test.tsx | 5 +- src/components/ProjectSidebarMenu.tsx | 2 - src/components/ProjectsContextProvider.tsx | 10 +- src/components/RefreshButton.tsx | 1 - src/components/RouteProvider.tsx | 56 ++- src/components/Settings/AllSettingsFields.tsx | 27 +- .../Settings/SettingsFieldInput.tsx | 7 +- src/components/Settings/SettingsSearchBar.tsx | 33 +- .../Settings/SettingsSectionsList.tsx | 6 +- src/components/SettingsAuthProvider.tsx | 383 ----------------- src/components/Stream.tsx | 11 +- src/components/UnitsMenu.tsx | 13 +- src/components/UserSidebarMenu.test.tsx | 8 +- src/hooks/useCreateFileLinkQueryWatcher.ts | 6 +- src/hooks/useRefreshSettings.ts | 32 -- src/hooks/useResolvedTheme.ts | 10 +- src/hooks/useSettingsAuthContext.ts | 6 - src/index.tsx | 11 + src/lang/KclProvider.tsx | 7 +- src/lang/wasm.ts | 10 +- .../settingsCommandConfig.ts | 46 +- src/lib/desktop.ts | 16 +- src/lib/paths.ts | 4 +- src/lib/routeLoaders.ts | 47 +- src/lib/settings/initialSettings.tsx | 1 + src/lib/settings/settingsUtils.ts | 32 +- src/machines/appMachine.ts | 51 ++- src/machines/authMachine.ts | 2 +- src/machines/machineConstants.ts | 3 +- src/machines/settingsMachine.ts | 402 ++++++++++++++++-- src/routes/Home.tsx | 8 +- src/routes/Onboarding/Camera.tsx | 15 +- src/routes/Onboarding/Introduction.tsx | 12 +- src/routes/Onboarding/ParametricModeling.tsx | 12 +- src/routes/Onboarding/Units.tsx | 13 +- src/routes/Onboarding/index.tsx | 30 +- src/routes/SignIn.tsx | 12 +- 60 files changed, 791 insertions(+), 780 deletions(-) delete mode 100644 src/components/SettingsAuthProvider.tsx delete mode 100644 src/hooks/useRefreshSettings.ts delete mode 100644 src/hooks/useSettingsAuthContext.ts diff --git a/e2e/playwright/onboarding-tests.spec.ts b/e2e/playwright/onboarding-tests.spec.ts index 804b90c44..33bfa9234 100644 --- a/e2e/playwright/onboarding-tests.spec.ts +++ b/e2e/playwright/onboarding-tests.spec.ts @@ -13,8 +13,8 @@ import { import * as TOML from '@iarna/toml' import { expectPixelColor } from './fixtures/sceneFixture' -// Because onboarding relies on an app setting we need to set it as incompletel -// for all these tests. +// Because our default test settings have the onboardingStatus set to 'dismissed', +// we must set it to empty for the tests where we want to see the onboarding immediately. test.describe('Onboarding tests', () => { test( @@ -22,7 +22,7 @@ test.describe('Onboarding tests', () => { { appSettings: { app: { - onboardingStatus: 'incomplete', + onboardingStatus: '', }, }, cleanProjectDir: true, @@ -63,7 +63,7 @@ test.describe('Onboarding tests', () => { tag: '@electron', appSettings: { app: { - onboardingStatus: 'incomplete', + onboardingStatus: '', }, }, cleanProjectDir: true, @@ -106,11 +106,6 @@ test.describe('Onboarding tests', () => { test( 'Code resets after confirmation', { - appSettings: { - app: { - onboardingStatus: 'incomplete', - }, - }, cleanProjectDir: true, }, async ({ context, page, homePage }) => { @@ -158,7 +153,7 @@ test.describe('Onboarding tests', () => { { appSettings: { app: { - onboardingStatus: 'incomplete', + onboardingStatus: '', }, }, }, @@ -319,7 +314,7 @@ test.describe('Onboarding tests', () => { { appSettings: { app: { - onboardingStatus: 'incomplete', + onboardingStatus: '', }, }, cleanProjectDir: true, @@ -392,7 +387,7 @@ test.describe('Onboarding tests', () => { { appSettings: { app: { - onboardingStatus: 'incomplete', + onboardingStatus: '', }, }, cleanProjectDir: true, diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-to-on-via-command-bar-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-to-on-via-command-bar-1-Google-Chrome-linux.png index 1c9a2d5df1e1fb24201634687dc5e16d347377ac..2f31ab10bd2bbbaaf96b27cca068157386b1d4af 100644 GIT binary patch delta 27839 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

VtR%dYvb^Xtm0Q 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 CihD)? diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Sketch-on-face-with-none-z-up-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Sketch-on-face-with-none-z-up-1-Google-Chrome-linux.png index d635f9055f9abcf4700df26ded6607fdb6e198e6..e244fafc662eeca097f626e9dda42b71af85b3c7 100644 GIT binary patch delta 57945 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�*AyZ7c$_L1P%{ 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 z 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 delta 57699 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 Nq^E7DRfw{?^FN{W&Po6P diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Zoom-to-fit-on-load---solid-2d-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Zoom-to-fit-on-load---solid-2d-1-Google-Chrome-linux.png index 01b92cd8e022866e8adf7fc6bf805db93b5ea0c7..a6cab619a2b1412b3d5d8adc56bd763b6a4d7568 100644 GIT binary patch delta 32895 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 QuxF_trz%?@ZSw5@00}a!w*UYD delta 32866 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 delta 15847 zcmb_@cR1B=_&*Jlj3R`Hi0lwD3nja7$W~T%_V!j3A&Tr(WUsQ<9n`i#dSLG_xpM7=e}R}>wew0g#+T{17iPDLZa%6a+{Z9En-Ql2_qp> z;wf?0mWEl3s1Cm*Z{4uW)eC_H1SZtsHzh=Jzpp2jK=?ZwwOY$&B)5gM?*CnEe)o>_ z-94Elcz2Z#^@pyD?|u9_B0fGf+6_Pm_}49F-cg>m@w1yvL`Wt0n7A*c4=Nk$)u3sk z6zZVvb!H>!-PER{y&c(evIGPItd`wSQm1ZAs#Jpg3%Kk4Z)8PGH?+xqx2s);LCx0J zYJUDx!J3GBWhzu0PQvU5wi4A1M?&jzJG>Fw*Jqzym*Np#|_;#}r&$*mZx5+FBr zDH8n^66zEFW$&Sd%DbG~)67L31xeVb{KLNAb8U0n>S~OB(+j;6{B=GW>{DCpkjssW z1O(}CP$R$c`vO{B$BnS4(Fa$*_)_`u*F5g3lKn0qBC?dUJEicP+MA!X>*6EI3w$K$ z0^zxb-!DG;Y#@B4!7G`?zjs^{{kh0s(!SSZvaPE7xDAui=YHrUc;j@Nmoqe08E_XZ z=Nhg0JTx0^obOM4uFJE(JXIS^1y$W0v!R`T>N|U2b^rO*tmMK?7>wr1B6G=1mdj;1>!t`L8MvaI9KgO`pDe;9_0A% zqa82*S^)-Ic*GmnYSGc3g%E~yyd{F&2&8x3mQ)vlW zefN9e+aO!Syx5L(_`LPKm*A*P^9aiM5Sy;E`?OEos$MUm28*zv9_vaFe~|&iBI;^+ z==}H8KHoJ5ovNUu*jqop_}y4n(W3Wym-|tic7Qww$&kuhhj5u5SU|{lV^It-2g7oe zYyzaYCB(x4qOOH8;{*5fKc&AGPr3R3uKh%JjROD%D{$ zJWj|d`ef}v(v7Fok9FP!yuCoYP~2R-asVrxYx?-t4ws(`)$m2J&Nao4+`wy?zl)>% z`%u7dd@Q5?c1=>d`lK7mn77VJkPeZt=L>o5^ZQ{ly>V}|Yj&0q#Yb(eWX4Qgh!>TM zbsG>52?-&=Z_bXcE(`ekgQex=RPTc-({}Dhl-d0*Lu#`xOKQ>MuXfqa?`4e!FVe_A|B(wWG47_!)r8Sj8t{?q#1zGnKiSS+Ha`Ef z5@S~D#FDPONxGvclv)SPZFy5jZy|VN@u3kSal&*326Wx(ZZbjslmrA}e`nK!WOeYl z)mc`4`mt<#V>0G*T2se!i3^Y8e~E_vb)J74d?6QNo#VO7awXRrrfPleyz9PRW2;Af zi=*RqSaANz*Wiw&O^v~-j};fX4BKg=NcydBG@&JEuU=;khSx)e@|mbHrPAvB<;#4~ zV+yh5gGSP>KNUgh%g$9b3!b0$xi=cYe?L1SzgopL{LZKUL`hxrf&dR6g1_P3-mo#o zZg(5nnXvS&y@rZE*qz?+t2_R?cs`?uUGgF?y$=c=S9 zNKFBsuTC-ygmHX#IAK`1-(!a9>iaN%LfU`=Zip=-dM2Gn2-N z<~~d|tskkG$Fp*|kB44s8+P8zZj7c~LS(IZ3rUTP9fN9m|HYK4FS`0 zi@L3SAY}OmGjR-u!yT$=nt3YMF5-21G9y3o4ERY&at;)$O|&sF6c z?_1ErU@AinocD)axUF~|z~I*y3lGy2ja%8>+>HXjIAI zJpsfNYU=8cp0dykg+xCNTWq@WnmD(jkiiV%{D1mbof8+}^CK`%689o^BWtJ`>%e=1+`yf{Yq8>%}hNd=JJE~_8!i{x6nxsG@t zcp<4t52nr5e0H3wiMV9ysi?Qow0=C)Ta+@nrE(TT;w2>|shEX%a3DujsV7xejrCv^ z9*Ha8ewZSp1v8>H8KHww$dVX-mmu+{&%rJq!oAyODt7}FJJO!it@%}Vt|zfBci+GzFCm-{)}@$pBFO23SLgDl6?$KfTWjE%98>s5wri!W7q z&-ajKm3u7pS79BJ#L*4N9bE^@WTN*u5`Jum&5b6ZRJXC0m#v}OXKQs)CG2jI!EL{? zLTjd?2mbQGRhRN=FQ0=5T4PTQ_6^^w zME&Op{I4WQ`=UQ`q#V7+AJDb|CV<#k&94wLfL7zF3hFI4A2f&}j(HtC+Y{AOrKMKL z&aFf_)AQGrmL5gY*mrHhy-`Ca@BSE(-MP;hHiM+m;W65Ye&6A@%t( zq*d)2&s^?Iwd{u>_QPl*@Hq~tSnUtv1U)gZLTx@7{VJdN`#y6q&j|=Ve{!nAY)3$~ z27EG@tp-5H6e=ncj#D<5CKC2tjP1CvuPwNyPGYj>!FRV6|I~}}xBu1CPz;N1UsPc7T*wIJ#}+_)RCtsO9*S~Uhw5UkPxKjn zp9>3?i``!k;;YBkrpPGjqy1AyWU8}!QIqoY46o_2! zy>C!qt~&S)_px16n@@!O%K50@NKa+{x$fH4=tE5CAA6hAA237XsM(R@Fu&E*C;g7ra1yE4!&Tr)y)hXig$aOKk3 zrBA@6^AR$*beZipD_q3Pl3U#P<5b*le&3^LIDZq;blBba8OKt!JB@3?+E-p%?qpe& zT%3yNlrca2iQN8ow9ba_>RbGA= zfq=>mgH7T8dPA!exL#sh>j__kaiyf+cdrlD;~r`_>E?YTWElW3!OU?s@#i&1h_N5T2>(5rN#l<0@)l zhA?2s4jQnd5e4RxiDl`-k_edPb#wt)1|11(z2-u%zB9&irDrx3zn+Tyo_h4%X3=JW zh%k)k%$h@yxqsY!htER?sMIm3Xpq0A@kRJK$k=z7W2*l%?}WeeHQP5z%i-y)X z=)Ey#YpTGg0bKleKr<`V_h96gX@u0li`A4q3hewQG~+M@?JPv4;s;Ve2#pVsfBY*i zJcSY5PviQeC<`Mq3#j9_OBd6TN}1TYG0-*97>jDRufMqQKCuqBk{&U&-_z?Gbosi@ z0{~9I8K3jTdK(k}7P+oMG!Io&W4^YlD%nT0t5#!v5P2K;DRuain)U9Wp$2wl-ljZS zcB3}4l2cJ&=7|PhZ2RI)j%HRkvkb0BjskvCcPM$#+airVWI8!mjm0la<42>^rQ)Tl zQe^fl-e!{9Yx!kYZ$I$$?zAC?W&)UN7nxC1SI3tv+ZQ9S6!_1OxBOd%gu|Fbo~6U7 z_-SvQXCutK-N$cw=gf_(nE1LCOBd4FnfXGV@;*z-CklC=Xy_+cVJTi{KtWq~vkSq< z+g-)9;Y&w->ep`?p6YpdMURe-MscX$alXssjrtYDD`8>#+;hvcJ5qiVxgu9pQ*8^UX0%{h?3QcY94y%-d)&3b z9cn4pzif345;Oa3O+xs};6VDWjt-w49cgfA>SV~n^Cpcdq{lfDJKmce>u^nsUg=g} z+o()WSZx ztJEOuJt74p-B2TjGET!m(8397^RH01&+2>rS}{@4Lrj0SLuJ>{+LgpR8b5AI`>dRo z0R_cjy~G0F)h|!E08folmvr1&Xf=EB_ya7Q0KL%MLczpbbKKe6cKmuaBSX2n(MAVt z+zI)V3RCfR{vGYUXi5xLPLEhzuj+FzGQ@^P?`91Q5moIzIXn9gvl5M}`++Ziz3@4j z4T{3oVN)tbLL5^F9Qcsce6g1?1 zDoir*LdD6n0`5E)vzgE1V}nb?4+ZT87|IycTq`pCqTF5e2L~9z0bFrf@2wkiXM5xVL*_mKm*vmYLN zD6`ii*WWaZG1+cF!&zB(LJZ>IF4&H_*p!pLxx9Ac<2D@;gOZjH_kzfoy*g(b+$Y=@ zwq_f=p*In6e*=Ha|JKY>d(KHR(bM6AimCWC=?2w0+0QPjH|50!c|9<$sx!br0o(d5 z6o5{U$&`4_YAr%-!&;)*4!E6I1g1B_Z;uw*riJ!(Aeg-0aV&Ja(wlCKMe0Z-7iDNz zkt9z4F2ar#`Jzmj8L+P2U%Qt}rp^(dE+BAg2pk{=l52)03XV(ijd|+BROKn`8U+(V zCASsAga7&-P97Gz!`FhKqad5*{ADa(G=FEZly@2A1CuxMSn`CqJ8q-}i?t`qK+>De zIlWik1~c+Zaj{lVQ!q+;2=E6u(OzL0aTD1W<0OG7aOI>vFJmExeZN(qe z>3fbVgrPAp%hC)*Da_kM@1**@$q_nE-rD>=znu0NCTqIFK7GOtIber`x+P28H>bQe zs-R^KXosUg0OcY`_>uv5ngHd6K)Omb!k4DlDX)hkxmsK|CEQdRnI-)4wQ8}rlTH4S zkqMOT_M7MOxuRz5{AFYFnRSAE`_pDfc{TZkj1vCNt}bb3WNEOZZ-UvapU!bh91%Xy z=TyB1c+1&8$~QLH5Ql{y8#X_3lPU}0p$NSeI{uHBpk;SIj*zre+-j1X`0*HD|OxgNX@FjLlc!hv$yAB^L84A zvMv5IF_9FXEbgi#PlESPR&v(#-t^$qlNQAzH3e%Oh2fWIjV{v~PYGe`eTyJpv+d|8 z8eTVXXFI#~)0&mv=8W_k7BI1fJncK6BDiLcnOXS4oNa*J9SrTZfXC98ERJ@EO}pU- zl4Z(;cT+LQ_q>H?X_A1T^IdCtRK})Z%87~?zM!DUO?kEMeA9{iLK~_iwq2i$Ux#0s zN~ciuCiY9l4s)Y2RAg^{_Y^z{2ws0i92Za#tMep#a_LFeG-cS|ojj~Q!Q*%{PLK+G zv8mW4A$&Vc!=Ej5sPgRG!nzDl0JS{IOsRUw_6MHaIK7A4M@;9T+QdOuQ>=8^{_AHr z{K1B#KrV6ve^ljuV0MReRPoQNTNl_~J|`ieF6fhCoOnJ*&Fh0J+ZFy>%+4MFATU4ORwYFMgs58lX z<1pzX{%Cf>JDk!Kw_6a^Zz8}Ne%xIlZmer1z9CsV5$W=sMS3$VloF^^;9QA|**hbB zzU=-Df(VV}mh;||_?_R~T=l{FSJZnh+*aNZ8|^#k;QIINha@b4Kt}V7UR&WHbntzF zOfDAjC`P@xAj=~ETYs6$m^Rrnqes7c#_b$nd;|m}s)8?0)V2rhVFn5f8Uph4ww6I| z8c7O1W#jq2nIt(4-i`lmEH4flgwlkHu6S5W-XH%1E9tZ|6-P|I7ETpQX9t zC~91ISmZUEAR=XCV{^dfUybo(Pc!P%Jp>BwxAjw7ep~fWS7%G2w#=c~ikk~6%@X>z zMYg^`TQ#P&!jXY~s!KBNO+=b~bOkpZBNU#TEt6IA&)#VAS95UxTWR`&l-y23i4Y!4 ziPP8d;=!wz>Sr?l=OlD9Z4J1saw6l* z7Ryonz2x#lnC3dEa3Ak!9>^KcO%5lfmc~wJhB< zXWv(v@Yo*e!J{Y7MO7X;G72`6U+H~&TCfn@id;!!Gv#k`EoJy1SPRSN&X#7UvSxZ* zQPsDl?I^19dy^+R3?9grTSm^PLUDS*yOj>bgo-Dx-)`LK+FEA)o{h}@VZt*&@7r7v zQo})ZnI({>$H!INSp)hF8=G@I^Im@v*41<^M9KJv{`LHRZ1pXH+SrX+E7{-`jv?3a zo=3UUcUN^!RdNCX7Bk<{%u2l)YXQ0|L~^@2i0RG46A77Yd&^|8qFr-8v#;h+n0Zov zBiMcpZ*4wjU=MX{euRAi`M-0#@P({5ce;0uJ*pKFwnGm9Rw-POZ%~B}IFz}feCNvT zP@ZWCfs+(MnGKqfBa`jCCStvgK=6Eqe^$H|m>+Ra!>#ThN_WLM)q{t_vZwV^{TmN$ zbJ=trM6!&9RuSHL!B>E>Jnj;#$x48uT>F#ZKOec~`!%z4i+mPRt6BOgOeYMvBEQ;L zs;tGtm$jqv3A29GfAc1~g4zEKP7#LC+#>%M*DNj{MrcH%Z;0<dZ|3%uhe8(42o6+8)q3WrU7Z3)i=baHD+? zgTw5o4XttxZr-AV&H;1!Q_7OSR#$F@T-)-PNM;ma5jSbiF5ld8Emq6#9T{WKX!`V| zEXJLgj1|<<1O&mia_1t+dI=pG?yegZ4Vwv;d9?blab~1F?z-%i#bHe+(i z+JU_#l}JOALUQd3t?p7H)8#J6YM;TU{I!gnCPPu3BE8#zl?P*197R-K@F{Q|g^{>& ztzWi0$@bdY(bG?<&7JL3xB7DSdS$Jw3+Vql_~-i5u0nK}!m1_YQVc9lS{lmhGkGR( z)Y(SAWvbj-AJcE59}#x#-?JzOHzUb-B?akAy#^EbRQ-#2@_6mBeUFNmxvY2zQ^eDx z_4egoa&gK(p8-ig{y(sG4O(Ngh}N3LFt+CNB8Jg1tAcuqT5!|x@04Nc;+I?euTL{h;dt2nnc2E z4mP=~Es%o^K@_yIsEI0PJT7f8Z^&i!n=Fa*&INVYTQ;ljHNRxf;P9HKO+|Y}%qXGr zIl`LQ%M*kTp_0AZgPNo9;{TQ=7L9x`%Xyqwwn;sjG~j{~`hIcDQ8OgbMuiKPsv2<>h`tVX%hL!zL>Cr#&$h}-!Cc&mi>P^pf1|$!OpGGd_jn5WL zo2qq1-0;YoE7W3SuWJs-?PiKW7vCGA6ME(#q3)o#J#f7`1jlM6eHWv+Mf}gkD|Cvx zp4_5dxtFh$^^_71x`7rBm zWTr^8cS4)gb>mB;Y^&+!a$!FrVm^r^v%{E$9uAG0rK^&BM>FQm^x7UmmhXh{*6BZV5IQC0^ql?q zEPuVo*UlTXE*rHKN$fNe+}{iHN>NXp9nSFH_w_+b8~LXCGYZq*GS;!0RfnHTQF+qqW>mDAET;ER%RwQ6nhijPCh6M`c<$Iy!oK zdNwsRog8j%uC6BW^4y(|Y~jxt$9jd9_t$8dnGv45OAl}L^!Go|Z-mH>qaQ4$r87rpW5ZKYl;dtr;yzg6 zgM9hCImGWH_7acRI|6OFPDQRH8)4P8@rt6}*Au@?iLHL>VvZ3*`jOm2#?VGa{VfMg z)$Nv8hBP6xp|DPW>A{5T8TfVG2Wy9W?Tf#ed8n?w!1GG+hNTjdeu{o;#YjKZgBrF7V~sK^3-#`_L`Lk+(#UhjwwsmZEFpKX)}FFR_Vkk=*LU+okT`tK_D7d$j2 zqXy5P_v!`xf=pZLw*HVR$MX5^59$=v?z9b68+tBA-@A8DHaIRW&b&Rwb<{^rxAM*G zw?_eL4vY_+%z}_~^F*sWcMI0)GZVBiZFD$P;ll_n`{3>}K;=Qfa3YehoMWQw(058wr$lcJtOGTyu7U|hV6ajv)_hsi(XnolFCnNn)e2;k7Vw9}PM^W+w;h z6_ak`JB#h7PWSaIHA^EnFdC8z8@0P#z|2V)No#xijkL$1OPz_d3=9%Lpq9a|s)M6A z0iAeZ%8{g+fSVn6 z=eb2Eb+-|sBrK6FxGBfix}$9`!{zX%5)My(2Jo)o2kpJnY!?O8_bU`ljj3emOiQAk z@aG>N;EG`lTE>R2a1eKW^TItu(fEPKYMX)jps1oLZpJ-277~=6$&oI8^*Jl|)(h4B znuKtODcKXYW#h6014VjdSDfT5ujOi6UqqJ!56-4dJ*Ev*3s87X`7_J*OW3G0vhlmB z!Md!xT$YZC%CsUCy0y9u!fvjdLn6Ks6b!G*w|QGyWIP5V+!sqN-IqN351Jo zwM!1vGM|&3?XlOZpiW+$CD5F_ndcxusU&V{+rZewH9&?Q!XNsZO)@U-K zhJuPIai62D>gwv|<|oN&w6;Zgc{YXGhK4tp@eN&koq5TA2t<{$z=U;zwx%W(2I*GQ zy;sC)7Ql<$frx5d0n^ku^xYSACuISk(W#gYgVHHwMH(+i4&u@J7_n!Aq6lR4;fv7(_>t`g8%&gh-MX9;T11;G4`zvak^aIB_l6kv-=%(2`%ip935j0h!Il7in#PENw~ z;MiV*TE03RHm!baI8wac_m%JO;p~zh^z*xDwegdp({S9Xcl862fL=F9q#G5 z75G#|MH1T#LUnJof4S~tWA_9Lh`qy9-_nA$m6g>rg!fI9(Tw~N7#L`RyV9%&gXyDC zHY28CGRBTNWgf77i9AGAivzy~w#$Dr$QD&FYR!)>Sz8&SbbiLj9-U|(Yv!wRu&!u| z_i%wa=~x2mhxk2ULkg?u-gzlpO@^Z{FvDYZ&iHQlhLW$#^o*rqr0Y`SP-a$+Qh%>H z(A@;G!fbeqxB{O|!u-6SA5V` zqhq3~WYJI~!4p39?%g|m`>G~0!Hge2B=-k2PwiOdjAb%42=1p9ZgQP~HpQosh~86n z-R7QiW)^sH@)w;Q_(i>i437Wm&88bG?HRysp46i?xY;wn?B-Usmtv-PgJZ1&{zP)I zU~<*{rgL;*`2oB+Qcx|DY^Y9Cli%o0;G5{e@D1l^cF%l3N670q%>U@ilJNGhF_`Yf zm?;h=OUCT}Rp|9C6mBMm+;sA3Wh?VY*?hHZyOJZjUWYIz;Fwd_cw5uhV*+daO`#P8 z+gare&}{aNuuQgRH5r4*5f%q@pUlk6q2XZ&cf4F+*Hz`T*ak8^K(l+5MICoBe)!#P z85!rL4&ZU+xw*(_9iyE5d}`TRz-!z=#!1CvmZ=~PHJ|M!S}b~BVzC*d4U4Ur`l32? z?xejj!VepGiR#@tAQKT05zua@C<8q`4X@t7Se+P$ez95WP4@|KD~HO-jnl3hNLdB@ zdmw4}UHX~K$PPuRezb}$jNG$uUmQO0MLfs|$Rt9#NhZIkmrQ2woc8#ZIa9}M4@s8t zxNS)-HIl;jr*#~TqbdJb^5^0X>WyeSgyb_$=qU#5z2}0O-#xgLo-(YE;b~nC^OaI2 z`Cgfq6cl4=P*sIY#EX0KsCSB(`V`Lh;9nD_Qp%EgaEnePyqR_0uA;cB8hrpqIM})N zQhL{w*uqwfxy;SXTvpVnX!vWlpg$n>4rAxbqv}moR__x0t}>bZ^PWNm^G3b<906-+ z)2ka|Z%l%3YFBsuP>lL;<;D&&uc&-fNJa)<+|HLM1NqT*Hd2dn`i)RsH=Z1Lyr0N! z0Meb-@TS!XhkFDnPv*gP=k2b9XA1UPXL$K$<4w(^bZU|3VVAwzxE)lXnkqeME5gCX zX5iGyepBjEU8n~`2+&x^J%m9+SXm?=t{!}^_8y;CdNJvO{6hO4UC*Q@ok?SyV-I(3z$l$cVAdB0pM(nhY z-Nuinbp3-zgWHN4y1MZ#^EVziu|X1dL~KS*5~f{w*88rDYx<~nXDG+z-#wq@v*gYw zU2OiyJBIkbWUd(bqpzW1mv5OI!8MEXNypb8UcuQhRNUf6f7 z@zbeZJa)@`^iNCd(v4&rT|WSE11gpunVD#;A5gd60Mvzox|i2hNB8O62V?pooTwBK zChN|wzby|%QQJeC+k?>bn3bO;ud|Am?b!R6KuI~&@gI}Hi5BuY8MdQoIQGB7^8t4p zSx87ohegR*0ej=djsI%c0k4THKf{FX$XQjoxqjn~!NW^`4eN-lJXX(EhxdEBg*iDc zL*C+NIt8Vpcsx%vxrjgi1mo%nkjoQgieCImQ&`?{xW&iU zWh+wQ(P{<>cE$^VKXCZi$(tx*=LMh`ZnU|Y+-c!#U|;~~s?GU-svU-b?!NT^cTsJh z>;Ar%uixpb&S)AI`a}+ZlAzhsk#@CIY2Vep3=ZNh$UTycot?eRZ6D0$bvAyassK1) zQvXf{GfQ#t;>G!v2*lx(xBgn{*RK%utBfyaWz09Ss;a6Q_sxyb2dDM~b*7;X9#oJ+ zt1iVnr)j%Wboz?vA}L>`3HY0jBKU!x0NKW54Y<)J7QI#k${a8w4oXv6+1lf!MA3;i z4Pbh#)ONHus>le!?k6+PxnP6#5U+RQO6#od!EI%Oo5d9#L%K~d5H;h3;k6hv$l?V} zJ0Q5jnWWGlcR|OCv7m?;D)3&6*5Ru`6*q;_R(J@&fub{NTX0kDpM%MsRxO60&;bdm z;s_dFukxL!bX1qYx@@fhT4^mzKb)^CWHZE5Gno<@S?q^JD}(yCAADghl%EY!ti~RU z2a(^*9R{NS=rxntUoUtLz!IbFe=(xB_v(`vB7+9;{ zyQ7x$LR))iU|^tD1c~_Mvp#9vuyeMWRGg4$ZehV^T!(=l zPBDPF((A;~R?|emkueT}d~5 z@_$va3kmgGm+=|Z9u4U`_%3`=5SM8Txz1g^oY9DrL#tQKx7~Lr;2rf{SvY7bZUb+- zwTeTAiNn~4>0+$M+y3Rz=)V{c+B%VN$?KG2M_>;3d^00l+3kxK2 za9U+{<50N}-<*p$DJf}7_{|!(^|9}AL0*z6X=!QTRMBX!poUo&aS+n$ZZ(6}*JZ)# zZKvy`C`p9x-;a)o0sJfGYblyKZFmh#&ID1Wm6i(MySLquSpg)z?fI5X5FfzP$fWzK z+}8C%o1CURmy?+!#gU+j-}R8>$f}3J!orA|JZ1o^1#%?a zTfu&`IHS5+Jk0z(r4?4ADBg3BL7mUaN%(QglVx@KXy-?2N*2X)n&HgSzt-0N+%#U7 zEH2vn#1Y%!gDlVJ#uwC8vnr3dqf^r#kn}^3sG;J8yh^d`Q}l zjEqyhDL=aOxc%X+H$;}P#DLHE{{74nO3P1fkG|&fbGMxzQ9BpHovEHW)f!!aLZQwR zlM6$tV1$0=Eiq)|wVJWBQIY| zmXg}u=UzHF?Wl@Q3VUqL0E-tF7x!$&o_2pA0{`$E09gS@ZdR}HsrHNOS_394WZ9(x zLIx<4%wX1#QmUwCLmUP>oqK}8mb;S2TOG$0v-*#*xG4QvBZpv;UcZpEq$E4Qxt+VE zbYQUS7|`5J&~&W4(C?a<^(*zQIX^G0?4D9M0#~;-<>T}beh{RyGof|}g_B9R+mE=8 zy2^n0FMB=A3Ihju>WT`z?Wwq`77E#b2U$F1U$k|KZ|)7TC7`ryd8 zxFax6*qJIL)99_czI=Fs0C=`mShMl>%kA&X=AbC&=Ht_bl|gtMAo(`yY}EpKzg{(g z@tgj>K5}LVw_R3IT3QOoOBa7pbZjghWhrBW8)Li}Ktx7AP;2DXtQNlj@{XWI$Eg?# zG?DzMX#EAZs%h_itO;9-)0cX+j5 z08b8n)C0+TjJ@luw=1ux_z}R!PAdmwt{cO)3MP#4NAnTx>tojo(F~&Yj8a~EI>x@& ztH;O6Z1}4dBC}Hcya1|mYv+T$sSWWJx;HI1-D?4WIxlyrDk*tk_W{acT@yQL3O`*W7JmNCJ>}a^!alRDE)Xj_xc#@c<3KNrC`iZKHy?MfBsCyn_Nx%_Vvq`-ul(|^`!i@ zJ+&`4bpM(N?Cnt#%ozN9Gy5lq*{?Fol8}IxPSRs*^^l^@W}AYiL1Dwn_GDr z=k9X1!+K9G`2+Ui6en5VSSIC>XQt2+?QV5ial`CuAxd(+`0-Hc~d=kX8Z}n^B z&$<QaOKB`ezXS_c4w)+cL#iF9CtfByUd^3aUj$65M0Fp&?K7D#G3Fjv42 z-oJl8+cwUjP`4rZy-xW-vRcKs-LDt2dthwQ8-)5hg+YnrE=nn>Q&MfU&UIEu`DYgv z;&$30{+jH{Oe=u=m**wod6DH*$eIK;#ryZ~1AJpae~pedH#fg2<2SLq`@WFIi~07y zCS#HzP!Lxh|DiSVm<4~e;IK=r5Ya;Ah5h`m={3EBm6ru^f_ z4=pXNy*(a+Z{{IsU>@;jmgU=$SX4AjGiZ2GmR52e@&J#Ox~zoE6mT&-(aRC=ph3&>19&V3fs}X6!%d=f`=5y__GR$V8s#j mukU;{z_#cdCFtdRgp{UvB38)5hy-ZlP{DtdG|j`z5QPR diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XZ-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XZ-1-Google-Chrome-linux.png index b886f4bcac81c93aaf037fdc9cfd1ca88db28d1d..aaf889c1032a2271fa1b5e33fbfcc96dfea56033 100644 GIT binary patch delta 26178 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%0AXLP9X|$Qxa0YhLtVcz9S! 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ɨa7d=>W#5Xd_`)xzo{-4PFcof-`QWMRU;1Ks<` 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 Uo$!;A-(R?{s;yF@eCMD40!|S;UjP6A diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--YZ-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--YZ-1-Google-Chrome-linux.png index ec3faefb4ed1b5ba04e8d7ed1000f7492802f77c..57aece587ca1bcd5d201f4969b25c048fbb9b5b0 100644 GIT binary patch delta 29252 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Ǿ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 Vr>n4??D;8)&*YvzDUvmL`#;hj4mSV* diff --git a/e2e/playwright/testing-camera-movement.spec.ts b/e2e/playwright/testing-camera-movement.spec.ts index bd2ce90b7..ac6f6f490 100644 --- a/e2e/playwright/testing-camera-movement.spec.ts +++ b/e2e/playwright/testing-camera-movement.spec.ts @@ -358,9 +358,7 @@ test.describe('Testing Camera Movement', { tag: ['@skipWin'] }, () => { exact: true, }) const userSettingsTab = page.getByRole('radio', { name: 'User' }) - const mouseControlsSetting = page - .locator('#mouseControls') - .getByRole('combobox') + const mouseControlsSetting = () => page.locator('#camera-controls').first() const mouseControlSuccesToast = page.getByText( 'Set mouse controls to "Solidworks"' ) @@ -390,7 +388,14 @@ test.describe('Testing Camera Movement', { tag: ['@skipWin'] }, () => { await settingsLink.click() await expect(settingsDialogHeading).toBeVisible() await userSettingsTab.click() - await mouseControlsSetting.selectOption({ label: 'Solidworks' }) + const setting = mouseControlsSetting() + await expect(setting).toBeAttached() + await setting.scrollIntoViewIfNeeded() + await setting.selectOption({ label: 'Solidworks' }) + await expect(setting, 'Setting value did not change').toHaveValue( + 'Solidworks', + { timeout: 120_000 } + ) await expect(mouseControlSuccesToast).toBeVisible() await settingsCloseButton.click() }) diff --git a/e2e/playwright/testing-settings.spec.ts b/e2e/playwright/testing-settings.spec.ts index 10d8245d7..4fd6a6ea8 100644 --- a/e2e/playwright/testing-settings.spec.ts +++ b/e2e/playwright/testing-settings.spec.ts @@ -633,6 +633,7 @@ test.describe('Testing settings', () => { `Set default unit to "${unitOfMeasure}" as a user default` ) await expect(toastMessage).toBeVisible() + await expect(toastMessage).not.toBeVisible() }) } await changeUnitOfMeasureInUserTab('in') diff --git a/src/App.tsx b/src/App.tsx index 69eeeda31..8c2795579 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -6,14 +6,12 @@ import { useHotkeys } from 'react-hotkeys-hook' import { useLoaderData, useNavigate } from 'react-router-dom' import { type IndexLoaderData } from 'lib/types' import { PATHS } from 'lib/paths' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { onboardingPaths } from 'routes/Onboarding/paths' import { useEngineConnectionSubscriptions } from 'hooks/useEngineConnectionSubscriptions' import { codeManager, engineCommandManager } from 'lib/singletons' import { useAbsoluteFilePath } from 'hooks/useAbsoluteFilePath' import { isDesktop } from 'lib/isDesktop' import { useLspContext } from 'components/LspProvider' -import { useRefreshSettings } from 'hooks/useRefreshSettings' import { ModelingSidebar } from 'components/ModelingSidebar/ModelingSidebar' import { LowerRightControls } from 'components/LowerRightControls' import ModalContainer from 'react-modal-promise' @@ -30,6 +28,7 @@ import { useRouteLoaderData } from 'react-router-dom' import { useEngineCommands } from 'components/EngineCommands' import { commandBarActor } from 'machines/commandBarMachine' import { useToken } from 'machines/appMachine' +import { useSettings } from 'machines/appMachine' maybeWriteToDisk() .then(() => {}) .catch(() => {}) @@ -49,7 +48,6 @@ export function App() { }) }) - useRefreshSettings(PATHS.FILE + 'SETTINGS') const navigate = useNavigate() const filePath = useAbsoluteFilePath() const { onProjectOpen } = useLspContext() @@ -71,7 +69,7 @@ export function App() { useHotKeyListener() - const { settings } = useSettingsAuthContext() + const settings = useSettings() const token = useToken() const coreDumpManager = useMemo( @@ -81,7 +79,7 @@ export function App() { const { app: { onboardingStatus }, - } = settings.context + } = settings useHotkeys('backspace', (e) => { e.preventDefault() diff --git a/src/Router.tsx b/src/Router.tsx index 7f78328b5..a341565cc 100644 --- a/src/Router.tsx +++ b/src/Router.tsx @@ -28,10 +28,8 @@ import { fileLoader, homeLoader, onboardingRedirectLoader, - settingsLoader, telemetryLoader, } from 'lib/routeLoaders' -import SettingsAuthProvider from 'components/SettingsAuthProvider' import LspProvider from 'components/LspProvider' import { KclContextProvider } from 'lang/KclProvider' import { ASK_TO_OPEN_QUERY_PARAM, BROWSER_PROJECT_NAME } from 'lib/constants' @@ -45,34 +43,28 @@ import { AppStateProvider } from 'AppState' import { reportRejection } from 'lib/trap' import { RouteProvider } from 'components/RouteProvider' import { ProjectsContextProvider } from 'components/ProjectsContextProvider' -import { OpenInDesktopAppHandler } from 'components/OpenInDesktopAppHandler' import { useToken } from 'machines/appMachine' +import { OpenInDesktopAppHandler } from 'components/OpenInDesktopAppHandler' const createRouter = isDesktop() ? createHashRouter : createBrowserRouter const router = createRouter([ { - loader: settingsLoader, id: PATHS.INDEX, - // TODO: Re-evaluate if this is true - /* Make sure auth is the outermost provider or else we will have - * inefficient re-renders, use the react profiler to see. */ element: ( - - - - - - - - - - - - - + + + + + + + + + + + ), @@ -120,7 +112,6 @@ const router = createRouter([ children: [ { id: PATHS.FILE + 'SETTINGS', - loader: settingsLoader, children: [ { loader: onboardingRedirectLoader, @@ -166,11 +157,9 @@ const router = createRouter([ index: true, element: <>, id: PATHS.HOME + 'SETTINGS', - loader: settingsLoader, }, { path: makeUrlPathRelative(PATHS.SETTINGS), - loader: settingsLoader, element: , }, { diff --git a/src/clientSideScene/ClientSideSceneComp.tsx b/src/clientSideScene/ClientSideSceneComp.tsx index 7933b9266..275666330 100644 --- a/src/clientSideScene/ClientSideSceneComp.tsx +++ b/src/clientSideScene/ClientSideSceneComp.tsx @@ -2,7 +2,6 @@ import { useRef, useEffect, useState, useMemo, Fragment } from 'react' import { useModelingContext } from 'hooks/useModelingContext' import { cameraMouseDragGuards } from 'lib/cameraControls' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { ARROWHEAD, DEBUG_SHOW_BOTH_SCENES } from './sceneInfra' import { ReactCameraProperties } from './CameraControls' import { throttle, toSync } from 'lib/utils' @@ -48,6 +47,7 @@ import { ActionButton } from 'components/ActionButton' import { err, reportRejection, trap } from 'lib/trap' import { Node } from 'wasm-lib/kcl/bindings/Node' import { commandBarActor } from 'machines/commandBarMachine' +import { useSettings } from 'machines/appMachine' function useShouldHideScene(): { hideClient: boolean; hideServer: boolean } { const [isCamMoving, setIsCamMoving] = useState(false) @@ -76,8 +76,8 @@ export const ClientSideScene = ({ cameraControls, }: { cameraControls: ReturnType< - typeof useSettingsAuthContext - >['settings']['context']['modeling']['mouseControls']['current'] + typeof useSettings + >['modeling']['mouseControls']['current'] }) => { const canvasRef = useRef(null) const { state, send, context } = useModelingContext() diff --git a/src/components/CameraProjectionToggle.tsx b/src/components/CameraProjectionToggle.tsx index 75914ae13..907351dea 100644 --- a/src/components/CameraProjectionToggle.tsx +++ b/src/components/CameraProjectionToggle.tsx @@ -1,24 +1,22 @@ import { Switch } from '@headlessui/react' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' +import { settingsActor, useSettings } from 'machines/appMachine' import { useEffect, useState } from 'react' export function CameraProjectionToggle() { - const { settings } = useSettingsAuthContext() + const settings = useSettings() const isCameraProjectionPerspective = - settings.context.modeling.cameraProjection.current === 'perspective' + settings.modeling.cameraProjection.current === 'perspective' const [checked, setChecked] = useState(isCameraProjectionPerspective) useEffect(() => { - setChecked( - settings.context.modeling.cameraProjection.current === 'perspective' - ) - }, [settings.context.modeling.cameraProjection.current]) + setChecked(settings.modeling.cameraProjection.current === 'perspective') + }, [settings.modeling.cameraProjection.current]) return ( { - settings.send({ + settingsActor.send({ type: 'set.modeling.cameraProjection', data: { level: 'user', diff --git a/src/components/CommandBar/CommandBarKclInput.tsx b/src/components/CommandBar/CommandBarKclInput.tsx index e672c0fd4..111b2a976 100644 --- a/src/components/CommandBar/CommandBarKclInput.tsx +++ b/src/components/CommandBar/CommandBarKclInput.tsx @@ -7,7 +7,6 @@ import { } from '@codemirror/autocomplete' import { EditorView, keymap, ViewUpdate } from '@codemirror/view' import { CustomIcon } from 'components/CustomIcon' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { CommandArgument, KclCommandValue } from 'lib/commandTypes' import { getSystemTheme } from 'lib/theme' import { useCalculateKclExpression } from 'lib/useCalculateKclExpression' @@ -20,6 +19,7 @@ import { createIdentifier, createVariableDeclaration } from 'lang/modifyAst' import { useCodeMirror } from 'components/ModelingSidebar/ModelingPanes/CodeEditor' import { useSelector } from '@xstate/react' import { commandBarActor, useCommandBarState } from 'machines/commandBarMachine' +import { useSettings } from 'machines/appMachine' import toast from 'react-hot-toast' const machineContextSelector = (snapshot?: { @@ -42,7 +42,7 @@ function CommandBarKclInput({ const previouslySetValue = commandBarState.context.argumentsToSubmit[ arg.name ] as KclCommandValue | undefined - const { settings } = useSettingsAuthContext() + const settings = useSettings() const argMachineContext = useSelector( arg.machineActor, machineContextSelector @@ -117,9 +117,9 @@ function CommandBarKclInput({ : defaultValue.length, }, theme: - settings.context.app.theme.current === 'system' + settings.app.theme.current === 'system' ? getSystemTheme() - : settings.context.app.theme.current, + : settings.app.theme.current, extensions: [ varMentionsExtension, EditorView.updateListener.of((vu: ViewUpdate) => { diff --git a/src/components/DownloadAppBanner.tsx b/src/components/DownloadAppBanner.tsx index 3c2391611..4bde8f0fa 100644 --- a/src/components/DownloadAppBanner.tsx +++ b/src/components/DownloadAppBanner.tsx @@ -1,16 +1,16 @@ import { Dialog } from '@headlessui/react' import { ActionButton } from './ActionButton' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { useState } from 'react' import { useSearchParams } from 'react-router-dom' import { CREATE_FILE_URL_PARAM } from 'lib/constants' +import { useSettings } from 'machines/appMachine' const DownloadAppBanner = () => { const [searchParams] = useSearchParams() const hasCreateFileParam = searchParams.has(CREATE_FILE_URL_PARAM) - const { settings } = useSettingsAuthContext() + const settings = useSettings() const [isBannerDismissed, setIsBannerDismissed] = useState( - settings.context.app.dismissWebBanner.current || hasCreateFileParam + settings.app.dismissWebBanner.current ) return ( diff --git a/src/components/FileMachineProvider.tsx b/src/components/FileMachineProvider.tsx index c4973e903..bce232ff5 100644 --- a/src/components/FileMachineProvider.tsx +++ b/src/components/FileMachineProvider.tsx @@ -1,7 +1,7 @@ import { useMachine } from '@xstate/react' -import { useNavigate, useRouteLoaderData } from 'react-router-dom' +import { useLocation, useNavigate, useRouteLoaderData } from 'react-router-dom' import { type IndexLoaderData } from 'lib/types' -import { PATHS } from 'lib/paths' +import { BROWSER_PATH, PATHS } from 'lib/paths' import React, { createContext, useEffect, useMemo } from 'react' import { toast } from 'react-hot-toast' import { @@ -27,9 +27,10 @@ import { getKclSamplesManifest, KclSamplesManifestItem, } from 'lib/getKclSamplesManifest' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { markOnce } from 'lib/performance' import { commandBarActor } from 'machines/commandBarMachine' +import { settingsActor, useSettings } from 'machines/appMachine' +import { createRouteCommands } from 'lib/commandBarConfigs/routeCommandConfig' import { useToken } from 'machines/appMachine' type MachineContext = { @@ -48,14 +49,51 @@ export const FileMachineProvider = ({ children: React.ReactNode }) => { const navigate = useNavigate() - const { settings } = useSettingsAuthContext() + const location = useLocation() const token = useToken() + const settings = useSettings() const projectData = useRouteLoaderData(PATHS.FILE) as IndexLoaderData const { project, file } = projectData const [kclSamples, setKclSamples] = React.useState( [] ) + // Due to the route provider, i've moved this to the FileMachineProvider instead of CommandBarProvider + // This will register the commands to route to Telemetry, Home, and Settings. + useEffect(() => { + const filePath = + PATHS.FILE + '/' + encodeURIComponent(file?.path || BROWSER_PATH) + const { RouteTelemetryCommand, RouteHomeCommand, RouteSettingsCommand } = + createRouteCommands(navigate, location, filePath) + commandBarActor.send({ + type: 'Remove commands', + data: { + commands: [ + RouteTelemetryCommand, + RouteHomeCommand, + RouteSettingsCommand, + ], + }, + }) + if (location.pathname === PATHS.HOME) { + commandBarActor.send({ + type: 'Add commands', + data: { commands: [RouteTelemetryCommand, RouteSettingsCommand] }, + }) + } else if (location.pathname.includes(PATHS.FILE)) { + commandBarActor.send({ + type: 'Add commands', + data: { + commands: [ + RouteTelemetryCommand, + RouteSettingsCommand, + RouteHomeCommand, + ], + }, + }) + } + }, [location]) + useEffect(() => { markOnce('code/didLoadFile') async function fetchKclSamples() { @@ -323,7 +361,7 @@ export const FileMachineProvider = ({ authToken: token ?? '', projectData, settings: { - defaultUnit: settings?.context?.modeling.defaultUnit.current ?? 'mm', + defaultUnit: settings.modeling.defaultUnit.current ?? 'mm', }, specialPropsForSampleCommand: { onSubmit: async (data) => { @@ -345,7 +383,7 @@ export const FileMachineProvider = ({ // Either way, we want to overwrite the defaultUnit project setting // with the sample's setting. if (data.sampleUnits) { - settings.send({ + settingsActor.send({ type: 'set.modeling.defaultUnit', data: { level: 'project', diff --git a/src/components/HelpMenu.tsx b/src/components/HelpMenu.tsx index d1eb8994e..7363dddd1 100644 --- a/src/components/HelpMenu.tsx +++ b/src/components/HelpMenu.tsx @@ -1,6 +1,5 @@ import { Popover } from '@headlessui/react' import Tooltip from './Tooltip' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { CustomIcon } from './CustomIcon' import { useLocation, useNavigate } from 'react-router-dom' import { PATHS } from 'lib/paths' @@ -9,6 +8,7 @@ import { useAbsoluteFilePath } from 'hooks/useAbsoluteFilePath' import { useLspContext } from './LspProvider' import { openExternalBrowserIfDesktop } from 'lib/openWindow' import { reportRejection } from 'lib/trap' +import { settingsActor } from 'machines/appMachine' const HelpMenuDivider = () => (

@@ -20,7 +20,6 @@ export function HelpMenu(props: React.PropsWithChildren) { const filePath = useAbsoluteFilePath() const isInProject = location.pathname.includes(PATHS.FILE) const navigate = useNavigate() - const { settings } = useSettingsAuthContext() return ( @@ -106,7 +105,7 @@ export function HelpMenu(props: React.PropsWithChildren) { { - settings.send({ + settingsActor.send({ type: 'set.app.onboardingStatus', data: { value: '', diff --git a/src/components/LspProvider.tsx b/src/components/LspProvider.tsx index 422e56afc..71f158eef 100644 --- a/src/components/LspProvider.tsx +++ b/src/components/LspProvider.tsx @@ -10,7 +10,6 @@ import { import { TEST, VITE_KC_API_BASE_URL } from 'env' import { kcl } from 'editor/plugins/lsp/kcl/language' import { copilotPlugin } from 'editor/plugins/lsp/copilot' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { Extension } from '@codemirror/state' import { LanguageSupport } from '@codemirror/language' import { useNavigate } from 'react-router-dom' diff --git a/src/components/ModelingMachineProvider.tsx b/src/components/ModelingMachineProvider.tsx index 53df7f375..c73a08113 100644 --- a/src/components/ModelingMachineProvider.tsx +++ b/src/components/ModelingMachineProvider.tsx @@ -22,7 +22,6 @@ import { modelingMachineDefaultContext, } from 'machines/modelingMachine' import { useSetupEngineManager } from 'hooks/useSetupEngineManager' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { isCursorInSketchCommandRange, updateSketchDetailsNodePaths, @@ -110,6 +109,7 @@ import { kclEditorActor } from 'machines/kclEditorMachine' import { commandBarActor } from 'machines/commandBarMachine' import { useToken } from 'machines/appMachine' import { getNodePathFromSourceRange } from 'lang/queryAstNodePathUtils' +import { useSettings } from 'machines/appMachine' type MachineContext = { state: StateFrom @@ -131,19 +131,15 @@ export const ModelingMachineProvider = ({ children: React.ReactNode }) => { const { - settings: { - context: { - app: { theme, enableSSAO, allowOrbitInSketchMode }, - modeling: { - defaultUnit, - cameraProjection, - highlightEdges, - showScaleGrid, - cameraOrbit, - }, - }, + app: { theme, enableSSAO, allowOrbitInSketchMode }, + modeling: { + defaultUnit, + cameraProjection, + highlightEdges, + showScaleGrid, + cameraOrbit, }, - } = useSettingsAuthContext() + } = useSettings() const previousAllowOrbitInSketchMode = useRef(allowOrbitInSketchMode.current) const navigate = useNavigate() const { context, send: fileMachineSend } = useFileContext() diff --git a/src/components/ModelingSidebar/ModelingPane.tsx b/src/components/ModelingSidebar/ModelingPane.tsx index f9b36fb86..748e5ddbe 100644 --- a/src/components/ModelingSidebar/ModelingPane.tsx +++ b/src/components/ModelingSidebar/ModelingPane.tsx @@ -1,12 +1,12 @@ import { ReactNode } from 'react' import styles from './ModelingPane.module.css' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { ActionButton } from 'components/ActionButton' import Tooltip from 'components/Tooltip' import { CustomIconName } from 'components/CustomIcon' import { IconDefinition } from '@fortawesome/free-solid-svg-icons' import { ActionIcon } from 'components/ActionIcon' import { onboardingPaths } from 'routes/Onboarding/paths' +import { useSettings } from 'machines/appMachine' export interface ModelingPaneProps { id: string @@ -68,8 +68,8 @@ export const ModelingPane = ({ title, ...props }: ModelingPaneProps) => { - const { settings } = useSettingsAuthContext() - const onboardingStatus = settings.context.app.onboardingStatus + const settings = useSettings() + const onboardingStatus = settings.app.onboardingStatus const pointerEventsCssClass = onboardingStatus.current === onboardingPaths.CAMERA ? 'pointer-events-none ' diff --git a/src/components/ModelingSidebar/ModelingPanes/KclEditorPane.tsx b/src/components/ModelingSidebar/ModelingPanes/KclEditorPane.tsx index 5925aeb4b..b4fa69b1f 100644 --- a/src/components/ModelingSidebar/ModelingPanes/KclEditorPane.tsx +++ b/src/components/ModelingSidebar/ModelingPanes/KclEditorPane.tsx @@ -1,5 +1,4 @@ import { TEST } from 'env' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { Themes, getSystemTheme } from 'lib/theme' import { useEffect, useMemo, useRef } from 'react' import { highlightSelectionMatches, searchKeymap } from '@codemirror/search' @@ -51,6 +50,7 @@ import { } from 'machines/kclEditorMachine' import { useSelector } from '@xstate/react' import { modelingMachineEvent } from 'editor/manager' +import { useSettings } from 'machines/appMachine' export const editorShortcutMeta = { formatCode: { @@ -63,9 +63,7 @@ export const editorShortcutMeta = { } export const KclEditorPane = () => { - const { - settings: { context }, - } = useSettingsAuthContext() + const context = useSettings() const lastSelectionEvent = useSelector(kclEditorActor, selectionEventSelector) const editorIsMounted = useSelector(kclEditorActor, editorIsMountedSelector) const theme = diff --git a/src/components/ModelingSidebar/ModelingSidebar.tsx b/src/components/ModelingSidebar/ModelingSidebar.tsx index b6bef1ea1..b1ffe3f3e 100644 --- a/src/components/ModelingSidebar/ModelingSidebar.tsx +++ b/src/components/ModelingSidebar/ModelingSidebar.tsx @@ -1,4 +1,3 @@ -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { Resizable } from 're-resizable' import { MouseEventHandler, @@ -21,6 +20,7 @@ import { MachineManagerContext } from 'components/MachineManagerProvider' import { onboardingPaths } from 'routes/Onboarding/paths' import { SIDEBAR_BUTTON_SUFFIX } from 'lib/constants' import { commandBarActor } from 'machines/commandBarMachine' +import { useSettings } from 'machines/appMachine' interface ModelingSidebarProps { paneOpacity: '' | 'opacity-20' | 'opacity-40' @@ -38,23 +38,23 @@ function getPlatformString(): 'web' | 'desktop' { export function ModelingSidebar({ paneOpacity }: ModelingSidebarProps) { const machineManager = useContext(MachineManagerContext) const kclContext = useKclContext() - const { settings } = useSettingsAuthContext() - const onboardingStatus = settings.context.app.onboardingStatus + const settings = useSettings() + const onboardingStatus = settings.app.onboardingStatus const { send, context } = useModelingContext() const pointerEventsCssClass = onboardingStatus.current === onboardingPaths.CAMERA || context.store?.openPanes.length === 0 ? 'pointer-events-none ' : 'pointer-events-auto ' - const showDebugPanel = settings.context.modeling.showDebugPanel + const showDebugPanel = settings.modeling.showDebugPanel const paneCallbackProps = useMemo( () => ({ kclContext, - settings: settings.context, + settings, platform: getPlatformString(), }), - [kclContext.diagnostics, settings.context] + [kclContext.diagnostics, settings] ) const sidebarActions: SidebarAction[] = [ @@ -144,7 +144,7 @@ export function ModelingSidebar({ paneOpacity }: ModelingSidebarProps) { }, }) } - }, [settings.context]) + }, [settings.modeling.showDebugPanel]) const togglePane = useCallback( (newPane: SidebarType) => { diff --git a/src/components/NetworkHealthIndicator.test.tsx b/src/components/NetworkHealthIndicator.test.tsx index ccee054bb..84e2ef978 100644 --- a/src/components/NetworkHealthIndicator.test.tsx +++ b/src/components/NetworkHealthIndicator.test.tsx @@ -1,6 +1,5 @@ import { fireEvent, render, screen } from '@testing-library/react' import { BrowserRouter } from 'react-router-dom' -import { SettingsAuthProviderJest } from './SettingsAuthProvider' import { NETWORK_HEALTH_TEXT, NetworkHealthIndicator, @@ -9,11 +8,7 @@ import { NetworkHealthState } from 'hooks/useNetworkStatus' function TestWrap({ children }: { children: React.ReactNode }) { // wrap in router and xState context - return ( - - {children} - - ) + return {children} } // Our Playwright tests for this are much more comprehensive. diff --git a/src/components/ProjectSidebarMenu.test.tsx b/src/components/ProjectSidebarMenu.test.tsx index 3cf0a78be..13d47829e 100644 --- a/src/components/ProjectSidebarMenu.test.tsx +++ b/src/components/ProjectSidebarMenu.test.tsx @@ -1,7 +1,6 @@ import { render, screen } from '@testing-library/react' import { BrowserRouter } from 'react-router-dom' import ProjectSidebarMenu from './ProjectSidebarMenu' -import { SettingsAuthProviderJest } from './SettingsAuthProvider' import { Project } from 'lib/project' const now = new Date() @@ -32,9 +31,7 @@ describe('ProjectSidebarMenu tests', () => { test('Disables popover menu by default', () => { render( - - - + ) diff --git a/src/components/ProjectSidebarMenu.tsx b/src/components/ProjectSidebarMenu.tsx index 639b5f668..5e125a829 100644 --- a/src/components/ProjectSidebarMenu.tsx +++ b/src/components/ProjectSidebarMenu.tsx @@ -18,7 +18,6 @@ import { SnapshotFrom } from 'xstate' import { commandBarActor } from 'machines/commandBarMachine' import { useSelector } from '@xstate/react' import { copyFileShareLink } from 'lib/links' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { useToken } from 'machines/appMachine' const ProjectSidebarMenu = ({ @@ -103,7 +102,6 @@ function ProjectMenuPopover({ const location = useLocation() const navigate = useNavigate() const filePath = useAbsoluteFilePath() - useSettingsAuthContext() const token = useToken() const machineManager = useContext(MachineManagerContext) const commands = useSelector(commandBarActor, commandsSelector) diff --git a/src/components/ProjectsContextProvider.tsx b/src/components/ProjectsContextProvider.tsx index 8603031d3..58765efd0 100644 --- a/src/components/ProjectsContextProvider.tsx +++ b/src/components/ProjectsContextProvider.tsx @@ -20,11 +20,11 @@ import { getUniqueProjectName, getNextFileName, } from 'lib/desktopFS' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import useStateMachineCommands from 'hooks/useStateMachineCommands' import { projectsCommandBarConfig } from 'lib/commandBarConfigs/projectsCommandConfig' import { isDesktop } from 'lib/isDesktop' import { commandBarActor } from 'machines/commandBarMachine' +import { useSettings } from 'machines/appMachine' import { CREATE_FILE_URL_PARAM, FILE_EXT, @@ -77,9 +77,7 @@ const ProjectsContextWeb = ({ children }: { children: React.ReactNode }) => { searchParams.delete('units') setSearchParams(searchParams) }, [searchParams, setSearchParams]) - const { - settings: { context: settings }, - } = useSettingsAuthContext() + const settings = useSettings() const [state, send, actor] = useMachine( projectsMachine.provide({ @@ -183,9 +181,7 @@ const ProjectsContextDesktop = ({ setSearchParams(searchParams) }, [searchParams, setSearchParams]) const { onProjectOpen } = useLspContext() - const { - settings: { context: settings }, - } = useSettingsAuthContext() + const settings = useSettings() const [projectsLoaderTrigger, setProjectsLoaderTrigger] = useState(0) const { projectPaths, projectsDir } = useProjectsLoader([ diff --git a/src/components/RefreshButton.tsx b/src/components/RefreshButton.tsx index c6cfeaf13..e4772838e 100644 --- a/src/components/RefreshButton.tsx +++ b/src/components/RefreshButton.tsx @@ -5,7 +5,6 @@ import { codeManager, engineCommandManager } from 'lib/singletons' import React, { useMemo } from 'react' import toast from 'react-hot-toast' import Tooltip from './Tooltip' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { reportRejection } from 'lib/trap' import { toSync } from 'lib/utils' import { useToken } from 'machines/appMachine' diff --git a/src/components/RouteProvider.tsx b/src/components/RouteProvider.tsx index f50d4996c..f306c5755 100644 --- a/src/components/RouteProvider.tsx +++ b/src/components/RouteProvider.tsx @@ -1,17 +1,36 @@ import { useEffect, useState, createContext, ReactNode } from 'react' -import { useNavigation, useLocation } from 'react-router-dom' +import { + useNavigation, + useLocation, + useNavigate, + useRouteLoaderData, +} from 'react-router-dom' import { PATHS } from 'lib/paths' import { markOnce } from 'lib/performance' import { useAuthNavigation } from 'hooks/useAuthNavigation' +import { useAuthState } from 'machines/appMachine' +import { IndexLoaderData } from 'lib/types' +import { getAppSettingsFilePath } from 'lib/desktop' +import { isDesktop } from 'lib/isDesktop' +import { trap } from 'lib/trap' +import { useFileSystemWatcher } from 'hooks/useFileSystemWatcher' +import { loadAndValidateSettings } from 'lib/settings/settingsUtils' +import { settingsActor } from 'machines/appMachine' export const RouteProviderContext = createContext({}) export function RouteProvider({ children }: { children: ReactNode }) { useAuthNavigation() + const loadedProject = useRouteLoaderData(PATHS.FILE) as IndexLoaderData const [first, setFirstState] = useState(true) + const [settingsPath, setSettingsPath] = useState( + undefined + ) const navigation = useNavigation() + const navigate = useNavigate() const location = useLocation() + const authState = useAuthState() useEffect(() => { // On initialization, the react-router-dom does not send a 'loading' state event. // it sends an idle event first. @@ -28,6 +47,41 @@ export function RouteProvider({ children }: { children: ReactNode }) { setFirstState(false) }, [navigation]) + useEffect(() => { + if (!isDesktop()) return + getAppSettingsFilePath().then(setSettingsPath).catch(trap) + }, []) + + useFileSystemWatcher( + async (eventType: string) => { + // If there is a projectPath but it no longer exists it means + // it was exterally removed. If we let the code past this condition + // execute it will recreate the directory due to code in + // loadAndValidateSettings trying to recreate files. I do not + // wish to change the behavior in case anything else uses it. + // Go home. + if (loadedProject?.project?.path) { + if (!window.electron.exists(loadedProject?.project?.path)) { + navigate(PATHS.HOME) + return + } + } + + // Only reload if there are changes. Ignore everything else. + if (eventType !== 'change') return + + const data = await loadAndValidateSettings(loadedProject?.project?.path) + settingsActor.send({ + type: 'Set all settings', + settings: data.settings, + doNotPersist: true, + }) + }, + [settingsPath, loadedProject?.project?.path].filter( + (x: string | undefined) => x !== undefined + ) + ) + return ( {children} diff --git a/src/components/Settings/AllSettingsFields.tsx b/src/components/Settings/AllSettingsFields.tsx index 6a1fa7644..b4b5c8b9b 100644 --- a/src/components/Settings/AllSettingsFields.tsx +++ b/src/components/Settings/AllSettingsFields.tsx @@ -1,5 +1,4 @@ import decamelize from 'decamelize' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { Setting } from 'lib/settings/initialSettings' import { SetEventTypes, SettingsLevel } from 'lib/settings/settingsTypes' import { @@ -25,6 +24,8 @@ import { useLspContext } from 'components/LspProvider' import { toSync } from 'lib/utils' import { reportRejection } from 'lib/trap' import { openExternalBrowserIfDesktop } from 'lib/openWindow' +import { settingsActor, useSettings } from 'machines/appMachine' +import { useSelector } from '@xstate/react' interface AllSettingsFieldsProps { searchParamTab: SettingsLevel @@ -40,9 +41,7 @@ export const AllSettingsFields = forwardRef( const navigate = useNavigate() const { onProjectOpen } = useLspContext() const dotDotSlash = useDotDotSlash() - const { - settings: { send, context, state }, - } = useSettingsAuthContext() + const context = useSettings() const projectPath = useMemo(() => { const filteredPathname = location.pathname @@ -62,7 +61,7 @@ export const AllSettingsFields = forwardRef( }, [location.pathname]) function restartOnboarding() { - send({ + settingsActor.send({ type: `set.app.onboardingStatus`, data: { level: 'user', value: '' }, }) @@ -72,11 +71,14 @@ export const AllSettingsFields = forwardRef( * A "listener" for the XState to return to "idle" state * when the user resets the onboarding, using the callback above */ + const isSettingsMachineIdle = useSelector(settingsActor, (s) => + s.matches('idle') + ) useEffect(() => { async function navigateToOnboardingStart() { if ( - state.context.app.onboardingStatus.user === '' && - state.matches('idle') + context.app.onboardingStatus.current === '' && + isSettingsMachineIdle ) { if (isFileSettings) { // If we're in a project, first navigate to the onboarding start here @@ -91,7 +93,12 @@ export const AllSettingsFields = forwardRef( } // eslint-disable-next-line @typescript-eslint/no-floating-promises navigateToOnboardingStart() - }, [isFileSettings, navigate, state]) + }, [ + isFileSettings, + navigate, + isSettingsMachineIdle, + context.app.onboardingStatus.current, + ]) return (
@@ -142,7 +149,7 @@ export const AllSettingsFields = forwardRef( } parentLevel={setting.getParentLevel(searchParamTab)} onFallback={() => - send({ + settingsActor.send({ type: `set.${category}.${settingName}`, data: { level: searchParamTab, @@ -218,7 +225,7 @@ export const AllSettingsFields = forwardRef( { - send({ + settingsActor.send({ type: 'Reset settings', level: searchParamTab, }) diff --git a/src/components/Settings/SettingsFieldInput.tsx b/src/components/Settings/SettingsFieldInput.tsx index 8b1aa2638..83ae6166c 100644 --- a/src/components/Settings/SettingsFieldInput.tsx +++ b/src/components/Settings/SettingsFieldInput.tsx @@ -1,5 +1,4 @@ import { Toggle } from 'components/Toggle/Toggle' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { Setting } from 'lib/settings/initialSettings' import { SetEventTypes, @@ -7,6 +6,7 @@ import { WildcardSetEvent, } from 'lib/settings/settingsTypes' import { getSettingInputType } from 'lib/settings/settingsUtils' +import { settingsActor, useSettings } from 'machines/appMachine' import { useMemo } from 'react' import { EventFrom } from 'xstate' @@ -25,9 +25,8 @@ export function SettingsFieldInput({ settingsLevel, setting, }: SettingsFieldInputProps) { - const { - settings: { context, send }, - } = useSettingsAuthContext() + const context = useSettings() + const send = settingsActor.send const options = useMemo(() => { return setting.commandConfig && 'options' in setting.commandConfig && diff --git a/src/components/Settings/SettingsSearchBar.tsx b/src/components/Settings/SettingsSearchBar.tsx index f317cdb1b..da5307c12 100644 --- a/src/components/Settings/SettingsSearchBar.tsx +++ b/src/components/Settings/SettingsSearchBar.tsx @@ -2,10 +2,10 @@ import { Combobox } from '@headlessui/react' import { CustomIcon } from 'components/CustomIcon' import decamelize from 'decamelize' import Fuse from 'fuse.js' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { interactionMap } from 'lib/settings/initialKeybindings' import { Setting } from 'lib/settings/initialSettings' import { SettingsLevel } from 'lib/settings/settingsTypes' +import { useSettings } from 'machines/appMachine' import { useEffect, useMemo, useRef, useState } from 'react' import { useHotkeys } from 'react-hotkeys-hook' import { useNavigate } from 'react-router-dom' @@ -32,23 +32,22 @@ export function SettingsSearchBar() { ) const navigate = useNavigate() const [query, setQuery] = useState('') - const { settings } = useSettingsAuthContext() + const settings = useSettings() const settingsAsSearchable: SettingsSearchItem[] = useMemo( () => [ - ...Object.entries(settings.state.context).flatMap( - ([category, categorySettings]) => - Object.entries(categorySettings).flatMap(([settingName, setting]) => { - const s = setting as Setting - return (['project', 'user'] satisfies SettingsLevel[]) - .filter((l) => s.hideOnLevel !== l) - .map((l) => ({ - category: decamelize(category, { separator: ' ' }), - name: settingName, - description: s.description ?? '', - displayName: decamelize(settingName, { separator: ' ' }), - level: l as ExtendedSettingsLevel, - })) - }) + ...Object.entries(settings).flatMap(([category, categorySettings]) => + Object.entries(categorySettings).flatMap(([settingName, setting]) => { + const s = setting + return (['project', 'user'] satisfies SettingsLevel[]) + .filter((l) => s.hideOnLevel !== l) + .map((l) => ({ + category: decamelize(category, { separator: ' ' }), + name: settingName, + description: s.description ?? '', + displayName: decamelize(settingName, { separator: ' ' }), + level: l, + })) + }) ), ...Object.entries(interactionMap).flatMap( ([category, categoryKeybindings]) => @@ -61,7 +60,7 @@ export function SettingsSearchBar() { })) ), ], - [settings.state.context] + [settings] ) const [searchResults, setSearchResults] = useState(settingsAsSearchable) diff --git a/src/components/Settings/SettingsSectionsList.tsx b/src/components/Settings/SettingsSectionsList.tsx index 581525ccd..2ce5d750c 100644 --- a/src/components/Settings/SettingsSectionsList.tsx +++ b/src/components/Settings/SettingsSectionsList.tsx @@ -1,8 +1,8 @@ import decamelize from 'decamelize' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { Setting } from 'lib/settings/initialSettings' import { SettingsLevel } from 'lib/settings/settingsTypes' import { shouldHideSetting } from 'lib/settings/settingsUtils' +import { useSettings } from 'machines/appMachine' interface SettingsSectionsListProps { searchParamTab: SettingsLevel @@ -13,9 +13,7 @@ export function SettingsSectionsList({ searchParamTab, scrollRef, }: SettingsSectionsListProps) { - const { - settings: { context }, - } = useSettingsAuthContext() + const context = useSettings() return (
{Object.entries(context) diff --git a/src/components/SettingsAuthProvider.tsx b/src/components/SettingsAuthProvider.tsx deleted file mode 100644 index 8dcae757c..000000000 --- a/src/components/SettingsAuthProvider.tsx +++ /dev/null @@ -1,383 +0,0 @@ -import { trap } from 'lib/trap' -import { useMachine, useSelector } from '@xstate/react' -import { useNavigate, useRouteLoaderData, useLocation } from 'react-router-dom' -import { PATHS, BROWSER_PATH } from 'lib/paths' -import React, { createContext, useEffect, useState } from 'react' -import { settingsMachine } from 'machines/settingsMachine' -import { toast } from 'react-hot-toast' -import { - darkModeMatcher, - getOppositeTheme, - setThemeClass, - Themes, -} from 'lib/theme' -import decamelize from 'decamelize' -import { Actor, AnyStateMachine, ContextFrom, Prop, StateFrom } from 'xstate' -import { - kclManager, - sceneInfra, - engineCommandManager, - sceneEntitiesManager, -} from 'lib/singletons' -import { IndexLoaderData } from 'lib/types' -import { settings } from 'lib/settings/initialSettings' -import { - createSettingsCommand, - settingsWithCommandConfigs, -} from 'lib/commandBarConfigs/settingsCommandConfig' -import { Command } from 'lib/commandTypes' -import { BaseUnit } from 'lib/settings/settingsTypes' -import { - saveSettings, - loadAndValidateSettings, -} from 'lib/settings/settingsUtils' -import { reportRejection } from 'lib/trap' -import { getAppSettingsFilePath } from 'lib/desktop' -import { isDesktop } from 'lib/isDesktop' -import { useFileSystemWatcher } from 'hooks/useFileSystemWatcher' -import { codeManager } from 'lib/singletons' -import { createRouteCommands } from 'lib/commandBarConfigs/routeCommandConfig' -import { commandBarActor } from 'machines/commandBarMachine' - -type MachineContext = { - state: StateFrom - context: ContextFrom - send: Prop, 'send'> -} - -type SettingsAuthContextType = { - settings: MachineContext -} - -/** - * This variable is used to store the last snapshot of the settings context - * for use outside of React, such as in `wasm.ts`. It is updated every time - * the settings machine changes with `useSelector`. - * TODO: when we decouple XState from React, we can just subscribe to the actor directly from `wasm.ts` - */ -export let lastSettingsContextSnapshot: - | ContextFrom - | undefined - -export const SettingsAuthContext = createContext({} as SettingsAuthContextType) - -export const SettingsAuthProvider = ({ - children, -}: { - children: React.ReactNode -}) => { - const loadedSettings = useRouteLoaderData(PATHS.INDEX) as typeof settings - const loadedProject = useRouteLoaderData(PATHS.FILE) as IndexLoaderData - return ( - - {children} - - ) -} - -// For use in jest tests we don't want to use the loader data -// and mock the whole Router -export const SettingsAuthProviderJest = ({ - children, -}: { - children: React.ReactNode -}) => { - const loadedSettings = settings - return ( - - {children} - - ) -} - -export const SettingsAuthProviderBase = ({ - children, - loadedSettings, - loadedProject, -}: { - children: React.ReactNode - loadedSettings: typeof settings - loadedProject?: IndexLoaderData -}) => { - const location = useLocation() - const navigate = useNavigate() - const [settingsPath, setSettingsPath] = useState( - undefined - ) - - const [settingsState, settingsSend, settingsActor] = useMachine( - settingsMachine.provide({ - actions: { - //TODO: batch all these and if that's difficult to do from tsx, - // make it easy to do - - setClientSideSceneUnits: ({ context, event }) => { - const newBaseUnit = - event.type === 'set.modeling.defaultUnit' - ? (event.data.value as BaseUnit) - : context.modeling.defaultUnit.current - sceneInfra.baseUnit = newBaseUnit - }, - setEngineTheme: ({ context }) => { - engineCommandManager - .setTheme(context.app.theme.current) - .catch(reportRejection) - }, - setClientTheme: ({ context }) => { - const opposingTheme = getOppositeTheme(context.app.theme.current) - sceneInfra.theme = opposingTheme - sceneEntitiesManager.updateSegmentBaseColor(opposingTheme) - }, - setAllowOrbitInSketchMode: ({ context }) => { - sceneInfra.camControls._setting_allowOrbitInSketchMode = - context.app.allowOrbitInSketchMode.current - // ModelingMachineProvider will do a use effect to trigger the camera engine sync - }, - toastSuccess: ({ event }) => { - if (!('data' in event)) return - const eventParts = event.type.replace(/^set./, '').split('.') as [ - keyof typeof settings, - string - ] - const truncatedNewValue = event.data.value?.toString().slice(0, 28) - const message = - `Set ${decamelize(eventParts[1], { separator: ' ' })}` + - (truncatedNewValue - ? ` to "${truncatedNewValue}${ - truncatedNewValue.length === 28 ? '...' : '' - }"${ - event.data.level === 'project' - ? ' for this project' - : ' as a user default' - }` - : '') - toast.success(message, { - duration: message.split(' ').length * 100 + 1500, - id: `${event.type}.success`, - }) - }, - 'Execute AST': ({ context, event }) => { - try { - const relevantSetting = (s: typeof settings) => { - return ( - s.modeling?.defaultUnit?.current !== - context.modeling.defaultUnit.current || - s.modeling.showScaleGrid.current !== - context.modeling.showScaleGrid.current || - s.modeling?.highlightEdges.current !== - context.modeling.highlightEdges.current - ) - } - - const allSettingsIncludesUnitChange = - event.type === 'Set all settings' && - relevantSetting(event.settings) - const resetSettingsIncludesUnitChange = - event.type === 'Reset settings' && relevantSetting(settings) - - if ( - event.type === 'set.modeling.defaultUnit' || - event.type === 'set.modeling.showScaleGrid' || - event.type === 'set.modeling.highlightEdges' || - allSettingsIncludesUnitChange || - resetSettingsIncludesUnitChange - ) { - // Unit changes requires a re-exec of code - // eslint-disable-next-line @typescript-eslint/no-floating-promises - kclManager.executeCode(true) - } else { - // For any future logging we'd like to do - // console.log( - // 'Not re-executing AST because the settings change did not affect the code interpretation' - // ) - } - } catch (e) { - console.error('Error executing AST after settings change', e) - } - }, - async persistSettings({ context, event }) { - // Without this, when a user changes the file, it'd - // create a detection loop with the file-system watcher. - if (event.doNotPersist) return - - codeManager.writeCausedByAppCheckedInFileTreeFileSystemWatcher = true - return saveSettings(context, loadedProject?.project?.path) - }, - }, - }), - { input: loadedSettings } - ) - // Any time the actor changes, update the settings state for external use - useSelector(settingsActor, (s) => { - lastSettingsContextSnapshot = s.context - }) - - useEffect(() => { - if (!isDesktop()) return - getAppSettingsFilePath().then(setSettingsPath).catch(trap) - }, []) - - useFileSystemWatcher( - async (eventType: string) => { - // If there is a projectPath but it no longer exists it means - // it was exterally removed. If we let the code past this condition - // execute it will recreate the directory due to code in - // loadAndValidateSettings trying to recreate files. I do not - // wish to change the behavior in case anything else uses it. - // Go home. - if (loadedProject?.project?.path) { - if (!window.electron.exists(loadedProject?.project?.path)) { - navigate(PATHS.HOME) - return - } - } - - // Only reload if there are changes. Ignore everything else. - if (eventType !== 'change') return - - const data = await loadAndValidateSettings(loadedProject?.project?.path) - settingsSend({ - type: 'Set all settings', - settings: data.settings, - doNotPersist: true, - }) - }, - [settingsPath, loadedProject?.project?.path].filter( - (x: string | undefined) => x !== undefined - ) - ) - - // Add settings commands to the command bar - // They're treated slightly differently than other commands - // Because their state machine doesn't have a meaningful .nextEvents, - // and they are configured statically in initialiSettings - useEffect(() => { - // If the user wants to hide the settings commands - //from the command bar don't add them. - if (settingsState.context.commandBar.includeSettings.current === false) - return - - const commands = settingsWithCommandConfigs(settingsState.context) - .map((type) => - createSettingsCommand({ - type, - send: settingsSend, - context: settingsState.context, - actor: settingsActor, - isProjectAvailable: loadedProject !== undefined, - }) - ) - .filter((c) => c !== null) as Command[] - - commandBarActor.send({ type: 'Add commands', data: { commands: commands } }) - - return () => { - commandBarActor.send({ - type: 'Remove commands', - data: { commands }, - }) - } - }, [ - settingsState, - settingsSend, - settingsActor, - commandBarActor.send, - settingsWithCommandConfigs, - ]) - - // Due to the route provider, i've moved this to the SettingsAuthProvider instead of CommandBarProvider - // This will register the commands to route to Telemetry, Home, and Settings. - useEffect(() => { - const filePath = - PATHS.FILE + - '/' + - encodeURIComponent(loadedProject?.file?.path || BROWSER_PATH) - const { RouteTelemetryCommand, RouteHomeCommand, RouteSettingsCommand } = - createRouteCommands(navigate, location, filePath) - commandBarActor.send({ - type: 'Remove commands', - data: { - commands: [ - RouteTelemetryCommand, - RouteHomeCommand, - RouteSettingsCommand, - ], - }, - }) - if (location.pathname === PATHS.HOME) { - commandBarActor.send({ - type: 'Add commands', - data: { commands: [RouteTelemetryCommand, RouteSettingsCommand] }, - }) - } else if (location.pathname.includes(PATHS.FILE)) { - commandBarActor.send({ - type: 'Add commands', - data: { - commands: [ - RouteTelemetryCommand, - RouteSettingsCommand, - RouteHomeCommand, - ], - }, - }) - } - }, [location]) - - // Listen for changes to the system theme and update the app theme accordingly - // This is only done if the theme setting is set to 'system'. - // It can't be done in XState (in an invoked callback, for example) - // because there doesn't seem to be a good way to listen to - // events outside of the machine that also depend on the machine's context - useEffect(() => { - const listener = (e: MediaQueryListEvent) => { - if (settingsState.context.app.theme.current !== 'system') return - setThemeClass(e.matches ? Themes.Dark : Themes.Light) - } - - darkModeMatcher?.addEventListener('change', listener) - return () => darkModeMatcher?.removeEventListener('change', listener) - }, [settingsState.context]) - - /** - * Update the --primary-hue CSS variable - * to match the setting app.themeColor.current - */ - useEffect(() => { - document.documentElement.style.setProperty( - `--primary-hue`, - settingsState.context.app.themeColor.current - ) - }, [settingsState.context.app.themeColor.current]) - - /** - * Update the --cursor-color CSS variable - * based on the setting textEditor.blinkingCursor.current - */ - useEffect(() => { - document.documentElement.style.setProperty( - `--cursor-color`, - settingsState.context.textEditor.blinkingCursor.current - ? 'auto' - : 'transparent' - ) - }, [settingsState.context.textEditor.blinkingCursor.current]) - - return ( - - {children} - - ) -} - -export default SettingsAuthProvider diff --git a/src/components/Stream.tsx b/src/components/Stream.tsx index b465c847c..8ec2d1fbe 100644 --- a/src/components/Stream.tsx +++ b/src/components/Stream.tsx @@ -1,6 +1,5 @@ import { MouseEventHandler, useEffect, useRef, useState } from 'react' import Loading from './Loading' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { useModelingContext } from 'hooks/useModelingContext' import { useNetworkContext } from 'hooks/useNetworkContext' import { NetworkHealthState } from 'hooks/useNetworkStatus' @@ -20,8 +19,8 @@ import { IndexLoaderData } from 'lib/types' import { err, reportRejection } from 'lib/trap' import { getArtifactOfTypes } from 'lang/std/artifactGraph' import { ViewControlContextMenu } from './ViewControlMenu' -import { commandBarActor, useCommandBarState } from 'machines/commandBarMachine' -import { useSelector } from '@xstate/react' +import { useCommandBarState } from 'machines/commandBarMachine' +import { useSettings } from 'machines/appMachine' enum StreamState { Playing = 'playing', @@ -34,7 +33,7 @@ export const Stream = () => { const [isLoading, setIsLoading] = useState(true) const videoWrapperRef = useRef(null) const videoRef = useRef(null) - const { settings } = useSettingsAuthContext() + const settings = useSettings() const { state, send } = useModelingContext() const commandBarState = useCommandBarState() const { mediaStream } = useAppStream() @@ -42,7 +41,7 @@ export const Stream = () => { const [streamState, setStreamState] = useState(StreamState.Unset) const { file } = useRouteLoaderData(PATHS.FILE) as IndexLoaderData - const IDLE = settings.context.app.streamIdleMode.current + const IDLE = settings.app.streamIdleMode.current const isNetworkOkay = overallState === NetworkHealthState.Ok || @@ -336,7 +335,7 @@ export const Stream = () => { id="video-stream" /> {(streamState === StreamState.Paused || streamState === StreamState.Resuming) && ( diff --git a/src/components/UnitsMenu.tsx b/src/components/UnitsMenu.tsx index 74ed63471..b65db3d0a 100644 --- a/src/components/UnitsMenu.tsx +++ b/src/components/UnitsMenu.tsx @@ -1,5 +1,5 @@ import { Popover } from '@headlessui/react' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' +import { settingsActor, useSettings } from 'machines/appMachine' import { changeKclSettings, unitLengthToUnitLen } from 'lang/wasm' import { baseUnitLabels, baseUnitsUnion } from 'lib/settings/settingsTypes' import { codeManager, kclManager } from 'lib/singletons' @@ -8,24 +8,25 @@ import { useEffect, useState } from 'react' import toast from 'react-hot-toast' export function UnitsMenu() { - const { settings } = useSettingsAuthContext() + const settings = useSettings() const [hasPerFileLengthUnit, setHasPerFileLengthUnit] = useState( Boolean(kclManager.fileSettings.defaultLengthUnit) ) const [lengthSetting, setLengthSetting] = useState( kclManager.fileSettings.defaultLengthUnit || - settings.context.modeling.defaultUnit.current + settings.modeling.defaultUnit.current ) useEffect(() => { setHasPerFileLengthUnit(Boolean(kclManager.fileSettings.defaultLengthUnit)) setLengthSetting( kclManager.fileSettings.defaultLengthUnit || - settings.context.modeling.defaultUnit.current + settings.modeling.defaultUnit.current ) }, [ kclManager.fileSettings.defaultLengthUnit, - settings.context.modeling.defaultUnit.current, + settings.modeling.defaultUnit.current, ]) + return ( {({ close }) => ( @@ -75,7 +76,7 @@ export function UnitsMenu() { .catch(reportRejection) } } else { - settings.send({ + settingsActor.send({ type: 'set.modeling.defaultUnit', data: { level: 'project', diff --git a/src/components/UserSidebarMenu.test.tsx b/src/components/UserSidebarMenu.test.tsx index 2e9fc1694..afa3ebd94 100644 --- a/src/components/UserSidebarMenu.test.tsx +++ b/src/components/UserSidebarMenu.test.tsx @@ -7,7 +7,6 @@ import { createRoutesFromElements, } from 'react-router-dom' import { Models } from '@kittycad/lib' -import { SettingsAuthProviderJest } from './SettingsAuthProvider' type User = Models['User_type'] @@ -120,12 +119,7 @@ function TestWrap({ children }: { children: React.ReactNode }) { // https://reactrouter.com/en/6.16.0/routers/picking-a-router#using-v64-data-apis const router = createMemoryRouter( createRoutesFromElements( - {children} - } - /> + {children}} /> ), { initialEntries: ['/file/new'], diff --git a/src/hooks/useCreateFileLinkQueryWatcher.ts b/src/hooks/useCreateFileLinkQueryWatcher.ts index 35b7a95ec..04237aadf 100644 --- a/src/hooks/useCreateFileLinkQueryWatcher.ts +++ b/src/hooks/useCreateFileLinkQueryWatcher.ts @@ -2,10 +2,10 @@ import { base64ToString } from 'lib/base64' import { CREATE_FILE_URL_PARAM, DEFAULT_FILE_NAME } from 'lib/constants' import { useEffect } from 'react' import { useSearchParams } from 'react-router-dom' -import { useSettingsAuthContext } from './useSettingsAuthContext' import { isDesktop } from 'lib/isDesktop' import { FileLinkParams } from 'lib/links' import { ProjectsCommandSchema } from 'lib/commandBarConfigs/projectsCommandConfig' +import { useSettings } from 'machines/appMachine' // For initializing the command arguments, we actually want `method` to be undefined // so that we don't skip it in the command palette. @@ -26,7 +26,7 @@ export function useCreateFileLinkQuery( callback: (args: CreateFileSchemaMethodOptional) => void ) { const [searchParams] = useSearchParams() - const { settings } = useSettingsAuthContext() + const settings = useSettings() useEffect(() => { const createFileParam = searchParams.has(CREATE_FILE_URL_PARAM) @@ -45,7 +45,7 @@ export function useCreateFileLinkQuery( ? params.name.replace('.kcl', '') : params.name : isDesktop() - ? settings.context.projects.defaultProjectName.current + ? settings.projects.defaultProjectName.current : DEFAULT_FILE_NAME, code: params.code || '', method: isDesktop() ? undefined : 'existingProject', diff --git a/src/hooks/useRefreshSettings.ts b/src/hooks/useRefreshSettings.ts deleted file mode 100644 index da7c440d2..000000000 --- a/src/hooks/useRefreshSettings.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { useRouteLoaderData } from 'react-router-dom' -import { useSettingsAuthContext } from './useSettingsAuthContext' -import { PATHS } from 'lib/paths' -import { settings } from 'lib/settings/initialSettings' -import { useEffect } from 'react' - -/** - * I was dismayed to learn that index route in Router.tsx where we initially load up the settings - * doesn't re-run on subsequent navigations. This hook is a workaround, - * in conjunction with additional uses of settingsLoader further down the router tree. - * @param routeId - The id defined in Router.tsx to load the settings from. - */ -export function useRefreshSettings(routeId: string = PATHS.INDEX) { - const ctx = useSettingsAuthContext() - const routeData = useRouteLoaderData(routeId) as typeof settings - - if (!ctx) { - // Intended to stop the world - // eslint-disable-next-line - throw new Error( - 'useRefreshSettings must be used within a SettingsAuthProvider' - ) - } - - useEffect(() => { - ctx.settings.send({ - type: 'Set all settings', - settings: routeData, - doNotPersist: true, - }) - }, []) -} diff --git a/src/hooks/useResolvedTheme.ts b/src/hooks/useResolvedTheme.ts index 21d376136..325dcf0f4 100644 --- a/src/hooks/useResolvedTheme.ts +++ b/src/hooks/useResolvedTheme.ts @@ -1,5 +1,5 @@ import { Themes, getSystemTheme } from 'lib/theme' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' +import { useSettings } from 'machines/appMachine' /** * Resolves the current theme based on the theme setting @@ -7,10 +7,8 @@ import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' * @returns {Themes.Light | Themes.Dark} */ export function useResolvedTheme() { - const { - settings: { context }, - } = useSettingsAuthContext() - return context.app.theme.current === Themes.System + const settings = useSettings() + return settings.app.theme.current === Themes.System ? getSystemTheme() - : context.app.theme.current + : settings.app.theme.current } diff --git a/src/hooks/useSettingsAuthContext.ts b/src/hooks/useSettingsAuthContext.ts deleted file mode 100644 index 9153c6e39..000000000 --- a/src/hooks/useSettingsAuthContext.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { SettingsAuthContext } from 'components/SettingsAuthProvider' -import { useContext } from 'react' - -export const useSettingsAuthContext = () => { - return useContext(SettingsAuthContext) -} diff --git a/src/index.tsx b/src/index.tsx index 907961a59..b7abe9b9f 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -11,6 +11,9 @@ import { ToastUpdate } from 'components/ToastUpdate' import { markOnce } from 'lib/performance' import { AUTO_UPDATER_TOAST_ID } from 'lib/constants' import { initializeWindowExceptionHandler } from 'lib/exceptions' +import { initPromise } from 'lang/wasm' +import { appActor } from 'machines/appMachine' +import { reportRejection } from 'lib/trap' markOnce('code/willAuth') initializeWindowExceptionHandler() @@ -23,6 +26,14 @@ initializeWindowExceptionHandler() // iframe: false, // }) +// Don't start the app machine until all these singletons +// are initialized, and the wasm module is loaded. +initPromise + .then(() => { + appActor.start() + }) + .catch(reportRejection) + const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement) root.render( diff --git a/src/lang/KclProvider.tsx b/src/lang/KclProvider.tsx index 510dca9a0..61dc05f39 100644 --- a/src/lang/KclProvider.tsx +++ b/src/lang/KclProvider.tsx @@ -1,9 +1,10 @@ import { createContext, useContext, useEffect, useState } from 'react' import { type IndexLoaderData } from 'lib/types' -import { useLoaderData } from 'react-router-dom' +import { useRouteLoaderData } from 'react-router-dom' import { codeManager, kclManager } from 'lib/singletons' import { Diagnostic } from '@codemirror/lint' import { KCLError } from './errors' +import { PATHS } from 'lib/paths' const KclContext = createContext({ code: codeManager?.code || '', @@ -27,7 +28,9 @@ export function KclContextProvider({ }) { // If we try to use this component anywhere but under the paths.FILE route it will fail // Because useLoaderData assumes we are on within it's context. - const { code: loadedCode } = useLoaderData() as IndexLoaderData + const data = useRouteLoaderData(PATHS.FILE) as IndexLoaderData | undefined + const loadedCode = data?.code + // Both the code state and the editor state start off with the same code. const [code, setCode] = useState(loadedCode || codeManager.code) diff --git a/src/lang/wasm.ts b/src/lang/wasm.ts index d23754670..4e40569e2 100644 --- a/src/lang/wasm.ts +++ b/src/lang/wasm.ts @@ -463,11 +463,11 @@ export const executeWithEngine = async ( const jsAppSettings = async () => { let jsAppSettings = default_app_settings() if (!TEST) { - const lastSettingsSnapshot = await import( - 'components/SettingsAuthProvider' - ).then((module) => module.lastSettingsContextSnapshot) - if (lastSettingsSnapshot) { - jsAppSettings = getAllCurrentSettings(lastSettingsSnapshot) + const settings = await import('machines/appMachine').then((module) => + module.getSettings() + ) + if (settings) { + jsAppSettings = getAllCurrentSettings(settings) } } return jsAppSettings diff --git a/src/lib/commandBarConfigs/settingsCommandConfig.ts b/src/lib/commandBarConfigs/settingsCommandConfig.ts index cc691b439..a79b4a29f 100644 --- a/src/lib/commandBarConfigs/settingsCommandConfig.ts +++ b/src/lib/commandBarConfigs/settingsCommandConfig.ts @@ -7,20 +7,23 @@ import { SettingsPaths, SettingsLevel, SettingProps, + SetEventTypes, } from 'lib/settings/settingsTypes' import { settingsMachine } from 'machines/settingsMachine' import { PathValue } from 'lib/types' -import { Actor, AnyStateMachine, ContextFrom } from 'xstate' +import { ActorRefFrom, AnyStateMachine } from 'xstate' import { getPropertyByPath } from 'lib/objectPropertyByPath' import { buildCommandArgument } from 'lib/createMachineCommand' import decamelize from 'decamelize' import { isDesktop } from 'lib/isDesktop' -import { Setting } from 'lib/settings/initialSettings' +import { + createSettings, + Setting, + SettingsType, +} from 'lib/settings/initialSettings' // An array of the paths to all of the settings that have commandConfigs -export const settingsWithCommandConfigs = ( - s: ContextFrom -) => +export const settingsWithCommandConfigs = (s: SettingsType) => Object.entries(s).flatMap(([categoryName, categorySettings]) => Object.entries(categorySettings) .filter(([_, setting]) => setting.commandConfig !== undefined) @@ -28,7 +31,7 @@ export const settingsWithCommandConfigs = ( ) as SettingsPaths[] const levelArgConfig = ( - actor: Actor, + actor: ActorRefFrom, isProjectAvailable: boolean, hideOnLevel?: SettingsLevel ): CommandArgument => ({ @@ -53,23 +56,16 @@ const levelArgConfig = ( interface CreateSettingsArgs { type: SettingsPaths - send: Function - context: ContextFrom - actor: Actor - isProjectAvailable: boolean + actor: ActorRefFrom } // Takes a Setting with a commandConfig and creates a Command // that can be used in the CommandBar component. -export function createSettingsCommand({ - type, - send, - context, - actor, - isProjectAvailable, -}: CreateSettingsArgs) { - type S = PathValue +export function createSettingsCommand({ type, actor }: CreateSettingsArgs) { + type S = PathValue, typeof type> + const context = actor.getSnapshot().context + const isProjectAvailable = context.currentProject !== undefined const settingConfig = getPropertyByPath(context, type) as SettingProps< S['default'] > @@ -129,10 +125,18 @@ export function createSettingsCommand({ icon: 'settings', needsReview: false, onSubmit: (data) => { - if (data !== undefined && data !== null) { - send({ type: `set.${type}`, data }) + if ( + data !== undefined && + data !== null && + 'value' in data && + 'level' in data + ) { + // TS would not let me get this to type properly + const coercedData = data as unknown as SetEventTypes['data'] + actor.send({ type: `set.${type}`, data: coercedData }) } else { - send({ type }) + console.error('Invalid data submitted to settings command', data) + return new Error('Invalid data submitted to settings command', data) } }, args: { diff --git a/src/lib/desktop.ts b/src/lib/desktop.ts index 7a55b0b21..5ad54d9f5 100644 --- a/src/lib/desktop.ts +++ b/src/lib/desktop.ts @@ -4,6 +4,7 @@ import { Project, FileEntry } from 'lib/project' import { defaultAppSettings, + initPromise, parseAppSettings, parseProjectSettings, } from 'lang/wasm' @@ -131,11 +132,20 @@ export async function createNewProjectDirectory( export async function listProjects( configuration?: DeepPartial | Error ): Promise { - if (configuration === undefined) { - configuration = await readAppSettingsFile() + // Make sure we have wasm initialized. + const initializedResult = await initPromise + if (err(initializedResult)) { + return Promise.reject(initializedResult) } - if (err(configuration)) return Promise.reject(configuration) + if (configuration === undefined) { + configuration = await readAppSettingsFile().catch((e) => { + console.error(e) + return e + }) + } + + if (err(configuration) || !configuration) return Promise.reject(configuration) const projectDir = await ensureProjectDirectoryExists(configuration) const projects = [] if (!projectDir) return Promise.reject(new Error('projectDir was falsey')) diff --git a/src/lib/paths.ts b/src/lib/paths.ts index 952b72fd6..9971ede0f 100644 --- a/src/lib/paths.ts +++ b/src/lib/paths.ts @@ -75,11 +75,11 @@ export async function getProjectMetaByRouteId( return route } -export async function parseProjectRoute( +export function parseProjectRoute( configuration: DeepPartial, id: string, pathlib: PlatformPath | undefined -): Promise { +): ProjectRoute { let projectName = null let projectPath = '' let currentFileName = null diff --git a/src/lib/routeLoaders.ts b/src/lib/routeLoaders.ts index 550c20c8f..9dd99ac5d 100644 --- a/src/lib/routeLoaders.ts +++ b/src/lib/routeLoaders.ts @@ -13,37 +13,9 @@ import makeUrlPathRelative from './makeUrlPathRelative' import { codeManager } from 'lib/singletons' import { fileSystemManager } from 'lang/std/fileSystemManager' import { getProjectInfo } from './desktop' -import { createSettings } from './settings/initialSettings' import { normalizeLineEndings } from 'lib/codeEditor' import { OnboardingStatus } from 'wasm-lib/kcl/bindings/OnboardingStatus' - -// The root loader simply resolves the settings and any errors that -// occurred during the settings load -export const settingsLoader: LoaderFunction = async ({ - params, -}): Promise< - ReturnType | ReturnType -> => { - let { settings, configuration } = await loadAndValidateSettings() - - // I don't love that we have to read the settings again here, - // but we need to get the project path to load the project settings - if (params.id) { - const projectPathData = await getProjectMetaByRouteId( - params.id, - configuration - ) - if (projectPathData) { - const { projectPath } = projectPathData - const { settings: s } = await loadAndValidateSettings( - projectPath || undefined - ) - return s - } - } - - return settings -} +import { getSettings, settingsActor } from 'machines/appMachine' export const telemetryLoader: LoaderFunction = async ({ params, @@ -53,7 +25,7 @@ export const telemetryLoader: LoaderFunction = async ({ // Redirect users to the appropriate onboarding page if they haven't completed it export const onboardingRedirectLoader: ActionFunction = async (args) => { - const { settings } = await loadAndValidateSettings() + const settings = getSettings() const onboardingStatus: OnboardingStatus = settings.app.onboardingStatus.current || '' const notEnRouteToOnboarding = !args.request.url.includes( @@ -72,7 +44,7 @@ export const onboardingRedirectLoader: ActionFunction = async (args) => { ) } - return settingsLoader(args) + return null } export const fileLoader: LoaderFunction = async ( @@ -156,9 +128,17 @@ export const fileLoader: LoaderFunction = async ( ? await getProjectInfo(projectPath) : null + const project = maybeProjectInfo ?? defaultProjectData + + // Fire off the event to load the project settings + settingsActor.send({ + type: 'load.project', + project, + }) + const projectData: IndexLoaderData = { code, - project: maybeProjectInfo ?? defaultProjectData, + project, file: { name: currentFileName || '', path: currentFilePath || '', @@ -197,5 +177,8 @@ export const homeLoader: LoaderFunction = async ({ PATHS.FILE + '/%2F' + BROWSER_PROJECT_NAME + (url.search || '') ) } + settingsActor.send({ + type: 'clear.project', + }) return {} } diff --git a/src/lib/settings/initialSettings.tsx b/src/lib/settings/initialSettings.tsx index f354e1091..c8f9f283e 100644 --- a/src/lib/settings/initialSettings.tsx +++ b/src/lib/settings/initialSettings.tsx @@ -554,3 +554,4 @@ export function createSettings() { } export const settings = createSettings() +export type SettingsType = ReturnType diff --git a/src/lib/settings/settingsUtils.ts b/src/lib/settings/settingsUtils.ts index b847a7afc..35f1c765e 100644 --- a/src/lib/settings/settingsUtils.ts +++ b/src/lib/settings/settingsUtils.ts @@ -1,7 +1,3 @@ -import { Setting, createSettings, settings } from 'lib/settings/initialSettings' -import { SaveSettingsPayload, SettingsLevel } from './settingsTypes' -import { isDesktop } from 'lib/isDesktop' -import { err } from 'lib/trap' import { defaultAppSettings, defaultProjectSettings, @@ -10,9 +6,8 @@ import { parseProjectSettings, tomlStringify, } from 'lang/wasm' -import { Configuration } from 'wasm-lib/kcl/bindings/Configuration' import { mouseControlsToCameraSystem } from 'lib/cameraControls' -import { appThemeToTheme } from 'lib/theme' +import { BROWSER_PROJECT_NAME } from 'lib/constants' import { getInitialDefaultDir, readAppSettingsFile, @@ -20,9 +15,14 @@ import { writeAppSettingsFile, writeProjectSettingsFile, } from 'lib/desktop' -import { ProjectConfiguration } from 'wasm-lib/kcl/bindings/ProjectConfiguration' -import { BROWSER_PROJECT_NAME } from 'lib/constants' +import { isDesktop } from 'lib/isDesktop' +import { Setting, createSettings, settings } from 'lib/settings/initialSettings' +import { appThemeToTheme } from 'lib/theme' +import { err } from 'lib/trap' import { DeepPartial } from 'lib/types' +import { Configuration } from 'wasm-lib/kcl/bindings/Configuration' +import { ProjectConfiguration } from 'wasm-lib/kcl/bindings/ProjectConfiguration' +import { SaveSettingsPayload, SettingsLevel } from './settingsTypes' /** * Convert from a rust settings struct into the JS settings struct. @@ -312,6 +312,22 @@ export function getAllCurrentSettings( return currentSettings } +export function clearSettingsAtLevel( + allSettings: typeof settings, + level: SettingsLevel +) { + Object.entries(allSettings).forEach(([category, settingsCategory]) => { + const categoryKey = category as keyof typeof settings + Object.entries(settingsCategory).forEach( + ([_, settingValue]: [string, Setting]) => { + settingValue[level] = undefined + } + ) + }) + + return allSettings +} + export function setSettingsAtLevel( allSettings: typeof settings, level: SettingsLevel, diff --git a/src/machines/appMachine.ts b/src/machines/appMachine.ts index fd2e757db..745d0a2c3 100644 --- a/src/machines/appMachine.ts +++ b/src/machines/appMachine.ts @@ -1,26 +1,39 @@ -import { ActorRefFrom, createActor, setup } from 'xstate' +import { ActorRefFrom, assign, createActor, setup, spawnChild } from 'xstate' import { authMachine } from './authMachine' import { useSelector } from '@xstate/react' import { ACTOR_IDS } from './machineConstants' +import { settingsMachine } from './settingsMachine' +import { createSettings } from 'lib/settings/initialSettings' + +const { AUTH, SETTINGS } = ACTOR_IDS +const appMachineActors = { + [AUTH]: authMachine, + [SETTINGS]: settingsMachine, +} as const + +type AppMachineActors = { + [K in keyof typeof appMachineActors]: ActorRefFrom< + (typeof appMachineActors)[K] + > +} const appMachine = setup({ - actors: { - [ACTOR_IDS.AUTH]: authMachine, - }, + actors: appMachineActors, }).createMachine({ /** @xstate-layout N4IgpgJg5mDOIC5gF8A0IB2B7CdGgAoBbAQwGMALASwzAEp8QAHLWKgFyqw0YA9EAjACZ0AT0FDkU5EA */ id: 'modeling-app', - invoke: [ - { - src: ACTOR_IDS.AUTH, - systemId: ACTOR_IDS.AUTH, - }, + entry: [ + spawnChild(AUTH, { id: AUTH, systemId: AUTH }), + spawnChild(SETTINGS, { + id: SETTINGS, + systemId: SETTINGS, + input: createSettings(), + }), ], }) -export const appActor = createActor(appMachine).start() - -export const authActor = appActor.system.get(ACTOR_IDS.AUTH) as ActorRefFrom< +export const appActor = createActor(appMachine) +export const authActor = appActor.system.get(AUTH) as ActorRefFrom< typeof authMachine > export const useAuthState = () => useSelector(authActor, (state) => state) @@ -28,3 +41,17 @@ export const useToken = () => useSelector(authActor, (state) => state.context.token) export const useUser = () => useSelector(authActor, (state) => state.context.user) + +export const settingsActor = appActor.system.get(SETTINGS) as ActorRefFrom< + typeof settingsMachine +> +export const getSettings = () => { + const { currentProject: _, ...settings } = settingsActor.getSnapshot().context + return settings +} +export const useSettings = () => + useSelector(settingsActor, (state) => { + // We have to peel everything that isn't settings off + const { currentProject, ...settings } = state.context + return settings + }) diff --git a/src/machines/authMachine.ts b/src/machines/authMachine.ts index 3ea7a055f..8e76ba838 100644 --- a/src/machines/authMachine.ts +++ b/src/machines/authMachine.ts @@ -80,7 +80,7 @@ export const authMachine = setup({ ), }, }).createMachine({ - /** @xstate-layout N4IgpgJg5mDOIC5QAoC2BDAxgCwJYDswBKAOhzEwGsBJAMwBkB7KGCa-AYgkcJIIDdGlMGWwVKAWgA2zVhIIBtAAwBdRKAAOjWLgAuuHupAAPRAGYArAEYSADgu2AnGYBMLpVYBsZz7YA0IACeiG6OJM62tmZKLgDsno5KtvEAvikBaFh4hKTkVHRMLJDsHGAATmWMZSQaUui6tFWoouLSspDy+MpqSCBaOvqGvaYIljb2Tq7uXj7+QYgALFYW4clWy1ZmVgsWsZtpGRg4BMQkMkVsnIUABIwArrrdRv16BvhGI74LJBYW7o5WKJmKILObBUZeEgJP4LTxKMwIhZmBYLA4gTLHHJnWQEKAAeQeXB4IgEQhEGOyp3OUFxBN0CFJmHqb26T16L0G72GiCsSg8PyszkBCViTiUjgC4Jcnhc4SUsQcvgsoL2VjRFJOpGptMJ5Uq1Vq9UaZWaGqx2vw+IeDPwgiZnNZqme2leQ1An1s31+-0BCJBYJCLm+lk8CRl9hRyos6qOlK17QgdI4N0UTvZLs5Hx58NsJARuys0tDSl+AYQthsgNi0TMqt2LjVaPwjAgcCMZuIzoGbyzCAknkliH7Maympa+QYCfYXddXPdixcg4QvKUdk2u2iLkcsXhCRHmKpU7nfQzPe5CAsMpIXi8MvFKM8VliS5c1jzj53W3isNFqPS6NjMcLStXQZ0zc8ohsJI-kcFxXEcR9HAWF9gTzDxbCUXxAQWEsdn3ONsQuOkwLPedl22MIzFg3YP1gl9PG+bYvGsSxlUcRJozSFIgA */ + /** @xstate-layout N4IgpgJg5mDOIC5QEECuAXAFgOgMabFwGsBJAMwBkB7KGCEgOwGIIqGxsBLBgNyqI75CRALQAbGnRHcA2gAYAuolAAHKrE7pObZSAAeiAIwAWQ9gBspuQCYAnAGYAHPYCsx+4ccAaEAE9E1q7YcoZyxrYR1m7mcrYAvnE+aFh4BMTk1LSQjExgAE55VHnYKmIAhuhkRQC2qcLikpDSDPJKSCBqGlo67QYI9gDs5tge5o6h5vau7oY+-v3mA9jWco4u5iu21ua2YcYJSRg4Eln0zJkABFQYrbqdmtoMun2GA7YjxuPmLqvGNh5zRCfJaOcyLUzuAYuFyGcwHEDJY6NCAAeQwTEuskUd3UDx6oD6Im2wUcAzkMJ2cjBxlMgIWLmwZLWljecjJTjh8IYVAgcF0iJxXUez0QIgGxhJZIpu2ptL8AWwtje1nCW2iq1shns8MRdXSlGRjEFeKevUQjkcy3sqwGHimbg83nlCF22GMytVUWMMUc8USCKO2BOdCN7Xu3VNBKMKsVFp2hm2vu+1id83slkVrgTxhcW0pNJ1geDkDR6GNEZFCAT1kZZLk9cMLltb0WdPMjewjjC1mzOZCtk5CSAA */ id: ACTOR_IDS.AUTH, initial: 'checkIfLoggedIn', context: { diff --git a/src/machines/machineConstants.ts b/src/machines/machineConstants.ts index a1a18ce4f..782d57964 100644 --- a/src/machines/machineConstants.ts +++ b/src/machines/machineConstants.ts @@ -1,3 +1,4 @@ export const ACTOR_IDS = { AUTH: 'auth', -} + SETTINGS: 'settings', +} as const diff --git a/src/machines/settingsMachine.ts b/src/machines/settingsMachine.ts index 690fba1e0..244143374 100644 --- a/src/machines/settingsMachine.ts +++ b/src/machines/settingsMachine.ts @@ -1,6 +1,25 @@ -import { assign, setup } from 'xstate' -import { Themes, getSystemTheme, setThemeClass } from 'lib/theme' -import { createSettings, settings } from 'lib/settings/initialSettings' +import { + AnyActorRef, + assign, + enqueueActions, + EventObject, + fromCallback, + fromPromise, + sendTo, + setup, +} from 'xstate' +import { + Themes, + darkModeMatcher, + getOppositeTheme, + getSystemTheme, + setThemeClass, +} from 'lib/theme' +import { + createSettings, + settings, + SettingsType, +} from 'lib/settings/initialSettings' import { BaseUnit, SetEventTypes, @@ -9,16 +28,39 @@ import { WildcardSetEvent, } from 'lib/settings/settingsTypes' import { + clearSettingsAtLevel, configurationToSettingsPayload, + loadAndValidateSettings, projectConfigurationToSettingsPayload, + saveSettings, setSettingsAtLevel, } from 'lib/settings/settingsUtils' -import { sceneInfra } from 'lib/singletons' +import { + codeManager, + engineCommandManager, + kclManager, + sceneEntitiesManager, + sceneInfra, +} from 'lib/singletons' +import toast from 'react-hot-toast' +import decamelize from 'decamelize' +import { reportRejection } from 'lib/trap' +import { Project } from 'lib/project' +import { + createSettingsCommand, + settingsWithCommandConfigs, +} from 'lib/commandBarConfigs/settingsCommandConfig' +import { Command } from 'lib/commandTypes' +import { commandBarActor } from './commandBarMachine' + +type SettingsMachineContext = SettingsType & { + currentProject?: Project +} export const settingsMachine = setup({ types: { - context: {} as ReturnType, - input: {} as ReturnType, + context: {} as SettingsMachineContext, + input: {} as SettingsMachineContext, events: {} as ( | WildcardSetEvent | SetEventTypes @@ -35,16 +77,219 @@ export const settingsMachine = setup({ level: SettingsLevel } | { type: 'Set all settings'; settings: typeof settings } + | { type: 'load.project'; project?: Project } + | { type: 'clear.project' } ) & { doNotPersist?: boolean }, }, + actors: { + persistSettings: fromPromise< + void, + { doNotPersist: boolean; context: SettingsMachineContext } + >(async ({ input }) => { + // Without this, when a user changes the file, it'd + // create a detection loop with the file-system watcher. + if (input.doNotPersist) return + + codeManager.writeCausedByAppCheckedInFileTreeFileSystemWatcher = true + const { currentProject, ...settings } = input.context + + return saveSettings(settings, currentProject?.path) + }), + loadUserSettings: fromPromise(async () => { + const { settings } = await loadAndValidateSettings() + return settings + }), + loadProjectSettings: fromPromise< + SettingsMachineContext, + { project?: Project } + >(async ({ input }) => { + const { settings } = await loadAndValidateSettings(input.project?.path) + return settings + }), + watchSystemTheme: fromCallback<{ + type: 'update.themeWatcher' + theme: Themes + }>(({ receive }) => { + const listener = (e: MediaQueryListEvent) => { + setThemeClass(e.matches ? Themes.Dark : Themes.Light) + } + + receive((event) => { + if (event.type !== 'update.themeWatcher') { + return + } else { + if (event.theme === Themes.System) { + darkModeMatcher?.addEventListener('change', listener) + } else { + darkModeMatcher?.removeEventListener('change', listener) + } + } + }) + + return () => darkModeMatcher?.removeEventListener('change', listener) + }), + registerCommands: fromCallback< + { type: 'update' }, + { settings: SettingsType; actor: AnyActorRef } + >(({ input, receive }) => { + // If the user wants to hide the settings commands + //from the command bar don't add them. + if (settings.commandBar.includeSettings.current === false) return + let commands: Command[] = [] + + const updateCommands = () => + settingsWithCommandConfigs(input.settings) + .map((type) => + createSettingsCommand({ + type, + actor: input.actor, + }) + ) + .filter((c) => c !== null) as Command[] + const addCommands = () => + commandBarActor.send({ + type: 'Add commands', + data: { commands: commands }, + }) + const removeCommands = () => + commandBarActor.send({ + type: 'Remove commands', + data: { commands: commands }, + }) + + receive((event) => { + if (event.type !== 'update') return + removeCommands() + commands = updateCommands() + addCommands() + }) + + commands = updateCommands() + addCommands() + + return () => { + removeCommands() + } + }), + }, actions: { - setEngineTheme: () => {}, - setClientTheme: () => {}, - 'Execute AST': () => {}, - toastSuccess: () => {}, - setClientSideSceneUnits: () => {}, - setAllowOrbitInSketchMode: () => {}, - persistSettings: () => {}, + setClientSideSceneUnits: ({ context, event }) => { + const newBaseUnit = + event.type === 'set.modeling.defaultUnit' + ? (event.data.value as BaseUnit) + : context.modeling.defaultUnit.current + if (!sceneInfra) return + sceneInfra.baseUnit = newBaseUnit + }, + setEngineTheme: ({ context }) => { + if (engineCommandManager && context.app.theme.current) { + engineCommandManager + .setTheme(context.app.theme.current) + .catch(reportRejection) + } + }, + setClientTheme: ({ context }) => { + if (!sceneInfra || !sceneEntitiesManager) return + const opposingTheme = getOppositeTheme(context.app.theme.current) + sceneInfra.theme = opposingTheme + sceneEntitiesManager.updateSegmentBaseColor(opposingTheme) + }, + setAllowOrbitInSketchMode: ({ context }) => { + if (!sceneInfra.camControls) return + sceneInfra.camControls._setting_allowOrbitInSketchMode = + context.app.allowOrbitInSketchMode.current + // ModelingMachineProvider will do a use effect to trigger the camera engine sync + }, + toastSuccess: ({ event }) => { + if (!('data' in event)) return + const eventParts = event.type.replace(/^set./, '').split('.') as [ + keyof typeof settings, + string + ] + const truncatedNewValue = event.data.value?.toString().slice(0, 28) + const message = + `Set ${decamelize(eventParts[1], { separator: ' ' })}` + + (truncatedNewValue + ? ` to "${truncatedNewValue}${ + truncatedNewValue.length === 28 ? '...' : '' + }"${ + event.data.level === 'project' + ? ' for this project' + : ' as a user default' + }` + : '') + toast.success(message, { + duration: message.split(' ').length * 100 + 1500, + id: `${event.type}.success`, + }) + }, + 'Execute AST': ({ context, event }) => { + try { + const relevantSetting = (s: typeof settings) => { + return ( + s.modeling?.defaultUnit?.current !== + context.modeling.defaultUnit.current || + s.modeling.showScaleGrid.current !== + context.modeling.showScaleGrid.current || + s.modeling?.highlightEdges.current !== + context.modeling.highlightEdges.current + ) + } + + const allSettingsIncludesUnitChange = + event.type === 'Set all settings' && + relevantSetting(event.settings || context) + const resetSettingsIncludesUnitChange = + event.type === 'Reset settings' && relevantSetting(settings) + + const shouldExecute = + kclManager !== undefined && + (event.type === 'set.modeling.defaultUnit' || + event.type === 'set.modeling.showScaleGrid' || + event.type === 'set.modeling.highlightEdges' || + allSettingsIncludesUnitChange || + resetSettingsIncludesUnitChange) + + if (shouldExecute) { + // Unit changes requires a re-exec of code + kclManager.executeCode(true).catch(reportRejection) + } else { + // For any future logging we'd like to do + // console.log( + // 'Not re-executing AST because the settings change did not affect the code interpretation' + // ) + } + } catch (e) { + console.error('Error executing AST after settings change', e) + } + }, + setThemeColor: ({ context }) => { + document.documentElement.style.setProperty( + `--primary-hue`, + context.app.themeColor.current + ) + }, + /** + * Update the --cursor-color CSS variable + * based on the setting textEditor.blinkingCursor.current + */ + setCursorColor: ({ context }) => { + document.documentElement.style.setProperty( + `--cursor-color`, + context.textEditor.blinkingCursor.current ? 'auto' : 'transparent' + ) + }, + /** Unload the project-level setting values from memory */ + clearProjectSettings: assign(({ context }) => { + // Peel off all non-settings context + const { currentProject: _, ...settings } = context + const newSettings = clearSettingsAtLevel(settings, 'project') + return newSettings + }), + /** Unload the current project's info from memory */ + clearCurrentProject: assign(({ context }) => { + return { ...context, currentProject: undefined } + }), resetSettings: assign(({ context, event }) => { if (!('level' in event)) return {} @@ -59,9 +304,10 @@ export const settingsMachine = setup({ return newSettings }), - setAllSettings: assign(({ event }) => { - if (!('settings' in event)) return {} - return event.settings + setAllSettings: assign(({ event, context }) => { + if ('settings' in event) return event.settings + else if ('output' in event) return event.output || context + else return context }), setSettingAtLevel: assign(({ context, event }) => { if (!('data' in event)) return {} @@ -94,25 +340,55 @@ export const settingsMachine = setup({ const newCurrentProjection = context.modeling.cameraProjection.current sceneInfra.camControls.setEngineCameraProjection(newCurrentProjection) }, + sendThemeToWatcher: sendTo('watchSystemTheme', ({ context }) => ({ + type: 'update.themeWatcher', + theme: context.app.theme.current, + })), }, }).createMachine({ - /** @xstate-layout N4IgpgJg5mDOIC5QGUwBc0EsB2VYDpMIAbMAYlnXwEMAHW-Ae2wCNHqAnCHKZNatAFdYAbQAMAXUShajWJizNpIAB6IALAFYAnPgBMARgDsBsQDY969QGYjmzQBoQAT0SnrADnwePY61r0PAwNtMyMAX3CnVAweAiJSCio6BjQACzAAWzAAYUZiRg5xKSQQWXlFbGU1BD1PfFtfE3UzTUNNaydXBCD1b209PTEPTTMtdQNNSOj0LFx4knJKNHxMxggwYh58DYAzakFiNABVbAVi5XKFTCVSmusxPXx7bRt1DzMxI3UjD3UutwhAz4MyeHxiV5+AYRKIgGJzPCERZJFYpfDpLJgC6lK6VaqIExPMwWGwdGxBPRmAE9PSafCPMQ-EzWbQ6ELTOGzOJIxLLVbrTbbNKYKBpLaitAAUWgcGxMjk11uoBqVmBH0ZLKCrVs-xciCCwLCvhCjyMFhGHPh3IS5AASnB0AACZYI0SSS4KvF3AlafADRl1YZ2IxiRx6hBtIzPb7abQ+DxGaxmYKWrnzHnkGKO6jEYjOtN4OVlT03KrehAtOnm7Qaup6Ixm6mR6OaR4dAwjM1mVOxdM2lH8jZbXD4WBpRgAd2QAGMc2AAOIcIhF3Gl-EIRPA6yGcyh4whSnU0xGJ5GAat0OfFowma9xH9gBUK5LStUiECdMmfx+mg8hmNTY-PgMYQpoZoxh41g9q6+C0GAHDyLACL5nesBkBAzBgIQ2AAG6MAA1lhcEIZgSFWvMz4VGu5YALTbtYwEnj8HhxnooT1mG3QhmY-TmJ82gGCyjzaJEsLYAK8ClOReAelRr41HRJiMZYvysexdjUuohh+poBiGDuXzGKy0HWossmKmWyqIDR3zAZWLSahM2jWJ04YjDxHbDMmmhaYE3wmemxGIchLpxOZXpWQgNEjMB1h6WEYHqK8ZgJk2EL6N8wR1Cy-gJqJ4RAA */ - id: 'Settings', - initial: 'idle', + /** @xstate-layout N4IgpgJg5mDOIC5QGUwBc0EsB2VYDpMIAbMAYlnXwEMAHW-Ae2wCNHqAnCHKZNatAFdYAbQAMAXUShajWJizNpIAB6IAzAA4x+AIyaAbJoCsAFl1njAJmOaANCACeiXQHZ1+a7bdWDATnUxawBfYIdUDB4CIlIKKjoGNAALMABbMABhRmJGDnEpJBBZeUVsZTUELR19IzMLUy97J0RfTXxDBr8DAxtdMSs-UPD0LFxoknJKNHxUxggwYh58eYAzakFiNABVbAV85WKFTCVCiqq9QxNzSxsm50qDU3wrMXV1V2M-bT8xV6GQCKjPCECZxaYJfDJNJgfaFQ6lcoabQXWrXBq3Bz3YzqPz4AyvL7qYw1TS6Az-QFREGxKY0ej4WBoDhgaipACSEwAsnMYZIDnIjidQGdkSS6jdbJjEK5zHi-PouqYiQZjBSRlSYpN4vTqMQcgB3ADyHBYCjZ2GQAGt0ABjJLc+awmQChGnJHVS7i9GS5oIQweVxueVWVz4mW6NWRMbUrXTWbzRa4fA21lgDjUAAKHEYACswDbSk6ii7jmU3ZVRZ60Y0pQg+rorPglQ2rKZ-FY3DLI0DxjSqPGFkskpgoElFqO0ABRaBwIvw0uIise1H1Gu+3Rk3R6Uydaz47qqsIA9XRzVkABKcHQAAIpj25yWhap3SirquMevAriTK4urYBhYViaN2GqghE166sQt4nngD4lAu5Zkni1yaKG2i6OoBgblYtY7sYniGNYmjqKYmjyropggaeoK0gOiZQAySSMPqyApqQADiHBEHBgplsKL5itWH73BYKr4OoLzmBhHahlRwJnjk1AQPgtDZnmBY8a6-EIKYVgePopEfKRmhAQ2xi1m8FyuCGnxmHhJFyb25AAFSaQh2nnIJ74+iJgZPK87ykmR-SmK4wFHpS0a0Gm8iMjw0FRngZAQMwYCENgABujDWvgkXAtFHCxUCCU9ggOBZSmhaSG5T4VKFuIkUEO7uPKfihaYtb6JZQR+J8Sq-iR4XDIlBAFUV8V3lEZBptmHAqcQAgrLkqS5TBo0xZgcW4CVURlZljCVaW+Q1Xxz46ciRhiFhBjvEEPmIKSVk2b1O4NA5EVrfgincLgWyUBwyWpelWU5XlBDfTwf1pntFUCEd1V8nCj6nWczyfPiYgfL4xhhZoqGdR8OhXT0xJiL1HxaI5X3sD9UBQwDM25PNi3LatI3U0pkP-TDB1w8wx2I868G1RomEEURGHWZjrydV0Hjym2bw3bY2LqFTEO4Fmub5mggPYGl5XZWlYMc7TWvqWgPOHfzCMFELvGLn035dGIPgYW1ui9bLv7PK8LxGGRFG6erNM8ObOvTRws3M2gS0cCtJsa1A4cFlbfPYALdvFsLKMaMS+BiKYfg2NigZk+85m+h2pg6L+MpthhKtEqER7YDy8CFGD-I54uAC06ie88ZL4i8FFfmSta92YBe-L8fhhaGLyYVTmrdw75ahbWqEGPgfjyj+PR762EYfezY2bcVk1jGvWlnWRTxB8YWEysY6O6Fve94vUB5fDXxIh5zX6-0b7uTOr3EMW4OzdH6K7JUZMJ7rh3I2X+PRpZvE+K4ABZs1I6xASLBAYhawdj6M8CSG4F64zVi3IAA */ + initial: 'loadingUser', context: ({ input }) => { return { ...createSettings(), ...input, } }, + invoke: [ + { + src: 'watchSystemTheme', + id: 'watchSystemTheme', + }, + { + src: 'registerCommands', + id: 'registerCommands', + // Peel off the non-settings context + input: ({ context: { currentProject, ...settings }, self }) => ({ + settings, + actor: self, + }), + }, + ], states: { idle: { - entry: ['setThemeClass', 'setClientSideSceneUnits'], + entry: ['setThemeClass', 'setClientSideSceneUnits', 'sendThemeToWatcher'], on: { '*': { target: 'persisting settings', - actions: ['setSettingAtLevel', 'toastSuccess'], + actions: [ + 'setSettingAtLevel', + 'toastSuccess', + enqueueActions(({ enqueue, check }) => { + if ( + check( + ({ event }) => event.type === 'set.textEditor.blinkingCursor' + ) + ) { + enqueue('setCursorColor') + } + }), + ], }, 'set.app.onboardingStatus': { @@ -126,7 +402,7 @@ export const settingsMachine = setup({ target: 'persisting settings', // No toast - actions: ['setSettingAtLevel'], + actions: ['setSettingAtLevel', 'setThemeColor'], }, 'set.modeling.defaultUnit': { @@ -149,6 +425,7 @@ export const settingsMachine = setup({ 'setThemeClass', 'setEngineTheme', 'setClientTheme', + 'sendThemeToWatcher', ], }, @@ -191,9 +468,11 @@ export const settingsMachine = setup({ 'setThemeClass', 'setEngineTheme', 'setClientSideSceneUnits', + 'setThemeColor', 'Execute AST', 'setClientTheme', 'setAllowOrbitInSketchMode', + 'sendThemeToWatcher', ], }, @@ -203,9 +482,11 @@ export const settingsMachine = setup({ 'setThemeClass', 'setEngineTheme', 'setClientSideSceneUnits', + 'setThemeColor', 'Execute AST', 'setClientTheme', 'setAllowOrbitInSketchMode', + 'sendThemeToWatcher', ], }, @@ -213,12 +494,85 @@ export const settingsMachine = setup({ target: 'persisting settings', actions: ['setSettingAtLevel', 'toastSuccess', 'Execute AST'], }, + + 'load.project': { + target: 'loadingProject', + }, + + 'clear.project': { + target: 'idle', + reenter: true, + actions: [ + 'clearProjectSettings', + 'clearCurrentProject', + 'setThemeColor', + sendTo('registerCommands', { type: 'update' }), + ], + }, }, }, 'persisting settings': { - entry: ['persistSettings'], - always: 'idle', + invoke: { + src: 'persistSettings', + onDone: { + target: 'idle', + }, + onError: { + target: 'idle', + actions: () => { + console.error('Error persisting settings') + }, + }, + input: ({ context, event }) => { + return { + doNotPersist: event.doNotPersist ?? false, + context, + } + }, + }, + }, + + loadingUser: { + invoke: { + src: 'loadUserSettings', + onDone: { + target: 'idle', + actions: 'setAllSettings', + }, + onError: { + target: 'idle', + actions: ({ event }) => { + console.error('Error loading user settings', event) + }, + }, + }, + }, + loadingProject: { + entry: [ + assign({ + currentProject: ({ event }) => + event.type === 'load.project' ? event.project : undefined, + }), + ], + invoke: { + src: 'loadProjectSettings', + onDone: { + target: 'idle', + actions: [ + 'setAllSettings', + 'setThemeColor', + 'Execute AST', + sendTo('registerCommands', { type: 'update' }), + ], + }, + onError: 'idle', + input: ({ event }) => { + return { + project: event.type === 'load.project' ? event.project : undefined, + } + }, + }, }, }, }) diff --git a/src/routes/Home.tsx b/src/routes/Home.tsx index 20ddc6819..e50ae1486 100644 --- a/src/routes/Home.tsx +++ b/src/routes/Home.tsx @@ -12,11 +12,9 @@ import { getSortFunction, getSortIcon, } from '../lib/sorting' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { useHotkeys } from 'react-hotkeys-hook' import { isDesktop } from 'lib/isDesktop' import { kclManager } from 'lib/singletons' -import { useRefreshSettings } from 'hooks/useRefreshSettings' import { LowerRightControls } from 'components/LowerRightControls' import { ProjectSearchBar, useProjectSearch } from 'components/ProjectSearchBar' import { Project } from 'lib/project' @@ -26,6 +24,7 @@ import { useProjectsLoader } from 'hooks/useProjectsLoader' import { useProjectsContext } from 'hooks/useProjectsContext' import { commandBarActor } from 'machines/commandBarMachine' import { useCreateFileLinkQuery } from 'hooks/useCreateFileLinkQueryWatcher' +import { useSettings } from 'machines/appMachine' // This route only opens in the desktop context for now, // as defined in Router.tsx, so we can use the desktop APIs and types. @@ -46,11 +45,8 @@ const Home = () => { }) }) - useRefreshSettings(PATHS.HOME + 'SETTINGS') const navigate = useNavigate() - const { - settings: { context: settings }, - } = useSettingsAuthContext() + const settings = useSettings() // Cancel all KCL executions while on the home page useEffect(() => { diff --git a/src/routes/Onboarding/Camera.tsx b/src/routes/Onboarding/Camera.tsx index 476adb8f4..6fb78b9fd 100644 --- a/src/routes/Onboarding/Camera.tsx +++ b/src/routes/Onboarding/Camera.tsx @@ -1,26 +1,19 @@ import { OnboardingButtons, useDismiss, useNextClick } from '.' import { onboardingPaths } from 'routes/Onboarding/paths' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { CameraSystem, cameraMouseDragGuards, cameraSystems, } from 'lib/cameraControls' import { SettingsSection } from 'components/Settings/SettingsSection' +import { settingsActor, useSettings } from 'machines/appMachine' export default function Units() { const dismiss = useDismiss() const next = useNextClick(onboardingPaths.STREAMING) const { - settings: { - send, - state: { - context: { - modeling: { mouseControls }, - }, - }, - }, - } = useSettingsAuthContext() + modeling: { mouseControls }, + } = useSettings() return (
@@ -40,7 +33,7 @@ export default function Units() { className="block w-full px-3 py-1 bg-transparent border border-chalkboard-30" value={mouseControls.current} onChange={(e) => { - send({ + settingsActor.send({ type: 'set.modeling.mouseControls', data: { level: 'user', diff --git a/src/routes/Onboarding/Introduction.tsx b/src/routes/Onboarding/Introduction.tsx index ada5d8ab3..b4a9e052e 100644 --- a/src/routes/Onboarding/Introduction.tsx +++ b/src/routes/Onboarding/Introduction.tsx @@ -1,6 +1,5 @@ import { OnboardingButtons, useDemoCode } from '.' import { onboardingPaths } from 'routes/Onboarding/paths' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { Themes, getSystemTheme } from 'lib/theme' import { bracket } from 'lib/exampleKcl' import { createAndOpenNewTutorialProject } from 'lib/desktopFS' @@ -14,6 +13,7 @@ import { PATHS } from 'lib/paths' import { useFileContext } from 'hooks/useFileContext' import { useLspContext } from 'components/LspProvider' import { reportRejection } from 'lib/trap' +import { useSettings } from 'machines/appMachine' /** * Show either a welcome screen or a warning screen @@ -120,14 +120,8 @@ function OnboardingIntroductionInner() { useDemoCode() const { - settings: { - state: { - context: { - app: { theme }, - }, - }, - }, - } = useSettingsAuthContext() + app: { theme }, + } = useSettings() const getLogoTheme = () => theme.current === Themes.Light || (theme.current === Themes.System && getSystemTheme() === Themes.Light) diff --git a/src/routes/Onboarding/ParametricModeling.tsx b/src/routes/Onboarding/ParametricModeling.tsx index 0fa8428ae..ae13f1ef1 100644 --- a/src/routes/Onboarding/ParametricModeling.tsx +++ b/src/routes/Onboarding/ParametricModeling.tsx @@ -1,21 +1,17 @@ import { OnboardingButtons, useDemoCode } from '.' import { onboardingPaths } from 'routes/Onboarding/paths' import { Themes, getSystemTheme } from 'lib/theme' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { bracketThicknessCalculationLine } from 'lib/exampleKcl' import { isDesktop } from 'lib/isDesktop' +import { useSettings } from 'machines/appMachine' export default function OnboardingParametricModeling() { useDemoCode() const { - settings: { - context: { - app: { - theme: { current: theme }, - }, - }, + app: { + theme: { current: theme }, }, - } = useSettingsAuthContext() + } = useSettings() const getImageTheme = () => theme === Themes.Light || (theme === Themes.System && getSystemTheme() === Themes.Light) diff --git a/src/routes/Onboarding/Units.tsx b/src/routes/Onboarding/Units.tsx index ad469b983..7ec94ac34 100644 --- a/src/routes/Onboarding/Units.tsx +++ b/src/routes/Onboarding/Units.tsx @@ -4,19 +4,14 @@ import { ActionButton } from 'components/ActionButton' import { SettingsSection } from 'components/Settings/SettingsSection' import { useDismiss, useNextClick } from '.' import { onboardingPaths } from 'routes/Onboarding/paths' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' +import { settingsActor, useSettings } from 'machines/appMachine' export default function Units() { const dismiss = useDismiss() const next = useNextClick(onboardingPaths.CAMERA) const { - settings: { - send, - context: { - modeling: { defaultUnit }, - }, - }, - } = useSettingsAuthContext() + modeling: { defaultUnit }, + } = useSettings() return (
@@ -31,7 +26,7 @@ export default function Units() { className="block w-full px-3 py-1 border border-chalkboard-30 bg-transparent" value={defaultUnit.user} onChange={(e) => { - send({ + settingsActor.send({ type: 'set.modeling.defaultUnit', data: { level: 'user', diff --git a/src/routes/Onboarding/index.tsx b/src/routes/Onboarding/index.tsx index 16d4f32e8..3d2daef9c 100644 --- a/src/routes/Onboarding/index.tsx +++ b/src/routes/Onboarding/index.tsx @@ -5,7 +5,6 @@ import Camera from './Camera' import Sketching from './Sketching' import { useCallback, useEffect } from 'react' import makeUrlPathRelative from '../../lib/makeUrlPathRelative' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import Streaming from './Streaming' import CodeEditor from './CodeEditor' import ParametricModeling from './ParametricModeling' @@ -26,9 +25,10 @@ import { reportRejection } from 'lib/trap' import { useNetworkContext } from 'hooks/useNetworkContext' import { NetworkHealthState } from 'hooks/useNetworkStatus' import { EngineConnectionStateType } from 'lang/std/engineConnection' +import { settingsActor, useSettings } from 'machines/appMachine' +import { useSelector } from '@xstate/react' import { CustomIcon } from 'components/CustomIcon' import Tooltip from 'components/Tooltip' -import { commandBarActor } from 'machines/commandBarMachine' export const kbdClasses = 'py-0.5 px-1 text-sm rounded bg-chalkboard-10 dark:bg-chalkboard-100 border border-chalkboard-50 border-b-2' @@ -112,25 +112,24 @@ export function useDemoCode() { export function useNextClick(newStatus: string) { const filePath = useAbsoluteFilePath() - const { - settings: { send }, - } = useSettingsAuthContext() const navigate = useNavigate() return useCallback(() => { - send({ + settingsActor.send({ type: 'set.app.onboardingStatus', data: { level: 'user', value: newStatus }, }) navigate(filePath + PATHS.ONBOARDING.INDEX.slice(0, -1) + newStatus) - }, [filePath, newStatus, send, navigate]) + }, [filePath, newStatus, settingsActor.send, navigate]) } export function useDismiss() { const filePath = useAbsoluteFilePath() - const { - settings: { state, send }, - } = useSettingsAuthContext() + const settings = useSettings() + const send = settingsActor.send + const isSettingsActorIdle = useSelector(settingsActor, (s) => + s.matches('idle') + ) const navigate = useNavigate() const settingsCallback = useCallback(() => { @@ -146,12 +145,17 @@ export function useDismiss() { */ useEffect(() => { if ( - state.context.app.onboardingStatus.user === 'dismissed' && - state.matches('idle') + settings.app.onboardingStatus.current === 'dismissed' && + isSettingsActorIdle ) { navigate(filePath) } - }, [filePath, navigate, state]) + }, [ + filePath, + navigate, + isSettingsActorIdle, + settings.app.onboardingStatus.current, + ]) return settingsCallback } diff --git a/src/routes/SignIn.tsx b/src/routes/SignIn.tsx index f78064c90..3772aaf7a 100644 --- a/src/routes/SignIn.tsx +++ b/src/routes/SignIn.tsx @@ -3,7 +3,6 @@ import { isDesktop } from '../lib/isDesktop' import { VITE_KC_SITE_BASE_URL, VITE_KC_API_BASE_URL } from '../env' import { Themes, getSystemTheme } from '../lib/theme' import { PATHS } from 'lib/paths' -import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { APP_NAME } from 'lib/constants' import { CSSProperties, useCallback, useState } from 'react' import { Logo } from 'components/Logo' @@ -15,6 +14,7 @@ import { toSync } from 'lib/utils' import { reportRejection } from 'lib/trap' import toast from 'react-hot-toast' import { authActor } from 'machines/appMachine' +import { useSettings } from 'machines/appMachine' const subtleBorder = 'border border-solid border-chalkboard-30 dark:border-chalkboard-80' @@ -23,14 +23,8 @@ const cardArea = `${subtleBorder} rounded-lg px-6 py-3 text-chalkboard-70 dark:t const SignIn = () => { const [userCode, setUserCode] = useState('') const { - settings: { - state: { - context: { - app: { theme }, - }, - }, - }, - } = useSettingsAuthContext() + app: { theme }, + } = useSettings() const signInUrl = `${VITE_KC_SITE_BASE_URL}${ PATHS.SIGN_IN }?callbackUrl=${encodeURIComponent(