@fctc/interface-logic 1.8.5 → 1.8.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/provider.js CHANGED
@@ -689,6 +689,297 @@ var MainProvider = ({ children }) => {
689
689
  var import_react2 = require("react");
690
690
  var import_react_query2 = require("@tanstack/react-query");
691
691
 
692
+ // src/services/view-service/backup.ts
693
+ var import_react = require("react");
694
+ function useViewService() {
695
+ const { env } = useEnv();
696
+ const getView = (0, import_react.useCallback)(
697
+ async ({ model, views, context = {}, options = {}, aid }) => {
698
+ const defaultOptions = {
699
+ load_filters: true,
700
+ toolbar: true,
701
+ action_id: aid
702
+ };
703
+ const jsonDataView = {
704
+ model,
705
+ method: "get_fields_view_v2" /* GET_FIELD_VIEW */,
706
+ kwargs: {
707
+ views,
708
+ options: { ...options, ...defaultOptions }
709
+ },
710
+ with_context: context
711
+ };
712
+ return env?.requests?.post("/call" /* CALL_PATH */, jsonDataView, {
713
+ headers: {
714
+ "Content-Type": "application/json"
715
+ }
716
+ });
717
+ },
718
+ [env]
719
+ );
720
+ const getMenu = (0, import_react.useCallback)(
721
+ async (context) => {
722
+ const jsonData = {
723
+ model: "ir.ui.menu" /* MENU */,
724
+ method: "web_search_read" /* WEB_SEARCH_READ */,
725
+ ids: [],
726
+ with_context: context,
727
+ kwargs: {
728
+ specification: {
729
+ active: {},
730
+ name: {},
731
+ is_display: {},
732
+ sequence: {},
733
+ complete_name: {},
734
+ action: {
735
+ fields: {
736
+ display_name: {},
737
+ type: {},
738
+ binding_view_types: {}
739
+ }
740
+ },
741
+ url_icon: {},
742
+ web_icon: {},
743
+ web_icon_data: {},
744
+ groups_id: {
745
+ fields: {
746
+ full_name: {}
747
+ },
748
+ limit: 40,
749
+ order: ""
750
+ },
751
+ display_name: {},
752
+ child_id: {
753
+ fields: {
754
+ active: {},
755
+ name: {},
756
+ is_display: {},
757
+ sequence: {},
758
+ complete_name: {},
759
+ action: {
760
+ fields: {
761
+ display_name: {},
762
+ type: {},
763
+ binding_view_types: {}
764
+ }
765
+ },
766
+ url_icon: {},
767
+ web_icon: {},
768
+ web_icon_data: {},
769
+ groups_id: {
770
+ fields: {
771
+ full_name: {}
772
+ },
773
+ limit: 40,
774
+ order: ""
775
+ },
776
+ display_name: {},
777
+ child_id: {
778
+ fields: {
779
+ active: {},
780
+ name: {},
781
+ is_display: {},
782
+ sequence: {},
783
+ complete_name: {},
784
+ action: {
785
+ fields: {
786
+ display_name: {},
787
+ type: {},
788
+ binding_view_types: {}
789
+ }
790
+ },
791
+ url_icon: {},
792
+ web_icon: {},
793
+ web_icon_data: {},
794
+ groups_id: {
795
+ fields: {
796
+ full_name: {}
797
+ },
798
+ limit: 40,
799
+ order: ""
800
+ },
801
+ display_name: {},
802
+ child_id: {
803
+ fields: {},
804
+ limit: 40,
805
+ order: ""
806
+ }
807
+ },
808
+ limit: 40,
809
+ order: ""
810
+ }
811
+ },
812
+ limit: 40,
813
+ order: ""
814
+ }
815
+ },
816
+ domain: [
817
+ "&",
818
+ ["is_display", "=", true],
819
+ "&",
820
+ ["active", "=", true],
821
+ ["parent_id", "=", false]
822
+ ]
823
+ }
824
+ };
825
+ return env?.requests?.post("/call" /* CALL_PATH */, jsonData, {
826
+ headers: {
827
+ "Content-Type": "application/json"
828
+ }
829
+ });
830
+ },
831
+ [env]
832
+ );
833
+ const getActionDetail = (0, import_react.useCallback)(
834
+ async (aid, context) => {
835
+ const jsonData = {
836
+ model: "ir.actions.act_window" /* WINDOW_ACTION */,
837
+ method: "web_read" /* WEB_READ */,
838
+ ids: [aid],
839
+ with_context: context,
840
+ kwargs: {
841
+ specification: {
842
+ id: {},
843
+ name: {},
844
+ res_model: {},
845
+ views: {},
846
+ view_mode: {},
847
+ mobile_view_mode: {},
848
+ domain: {},
849
+ context: {},
850
+ groups_id: {},
851
+ search_view_id: {}
852
+ }
853
+ }
854
+ };
855
+ return env?.requests?.post("/call" /* CALL_PATH */, jsonData, {
856
+ headers: {
857
+ "Content-Type": "application/json"
858
+ }
859
+ });
860
+ },
861
+ [env]
862
+ );
863
+ const getResequence = (0, import_react.useCallback)(
864
+ async ({ model, ids, context, offset }) => {
865
+ const jsonData = {
866
+ model,
867
+ with_context: context,
868
+ ids,
869
+ field: "sequence",
870
+ ...offset > 0 ? { offset } : {}
871
+ };
872
+ return env?.requests.post("/web/dataset/resequence", jsonData, {
873
+ headers: {
874
+ "Content-Type": "application/json"
875
+ }
876
+ });
877
+ },
878
+ [env]
879
+ );
880
+ const getSelectionItem = (0, import_react.useCallback)(
881
+ async ({ data }) => {
882
+ const jsonData = {
883
+ model: data.model,
884
+ ids: [],
885
+ method: "get_data_select",
886
+ with_context: data.context,
887
+ kwargs: {
888
+ count_limit: 10001,
889
+ domain: data.domain ? data.domain : [],
890
+ offset: 0,
891
+ order: "",
892
+ specification: data?.specification ?? {
893
+ id: {},
894
+ name: {},
895
+ display_name: {}
896
+ }
897
+ }
898
+ };
899
+ return env?.requests.post("/call" /* CALL_PATH */, jsonData, {
900
+ headers: {
901
+ "Content-Type": "application/json"
902
+ }
903
+ });
904
+ },
905
+ [env]
906
+ );
907
+ const loadMessages = (0, import_react.useCallback)(
908
+ async () => {
909
+ return env.requests.post(
910
+ "/load_message_failures" /* LOAD_MESSAGE */,
911
+ {},
912
+ {
913
+ headers: {
914
+ "Content-Type": "application/json"
915
+ }
916
+ }
917
+ );
918
+ },
919
+ [env]
920
+ );
921
+ const getVersion = (0, import_react.useCallback)(
922
+ async () => {
923
+ console.log("env?.requests", env, env?.requests);
924
+ return env?.requests?.get("", {
925
+ headers: {
926
+ "Content-Type": "application/json"
927
+ }
928
+ });
929
+ },
930
+ [env]
931
+ );
932
+ return {
933
+ getView,
934
+ getMenu,
935
+ getActionDetail,
936
+ getResequence,
937
+ getSelectionItem,
938
+ loadMessages,
939
+ getVersion
940
+ };
941
+ }
942
+
943
+ // src/provider/version-gate-provider.tsx
944
+ var import_jsx_runtime4 = require("react/jsx-runtime");
945
+ var VersionGate = ({ children }) => {
946
+ const queryClient = (0, import_react_query2.useQueryClient)();
947
+ const [ready, setReady] = (0, import_react2.useState)(false);
948
+ const { getVersion } = useViewService();
949
+ (0, import_react2.useEffect)(() => {
950
+ const clearVersion = () => {
951
+ queryClient.clear();
952
+ localStorage.removeItem("__api_version__");
953
+ };
954
+ const validateVersion = async () => {
955
+ const serverVersion = await getVersion();
956
+ console.log("serverVersion", serverVersion);
957
+ const cached = localStorage.getItem("__api_version__");
958
+ if (cached !== serverVersion?.api_version) {
959
+ clearVersion();
960
+ localStorage.setItem("__api_version__", serverVersion?.api_version);
961
+ } else {
962
+ console.log("Api version:", serverVersion?.api_version);
963
+ }
964
+ setReady(true);
965
+ };
966
+ validateVersion();
967
+ if (typeof window !== "undefined") {
968
+ const onKey = (e) => {
969
+ const key = e.key.toLowerCase();
970
+ const isHardRefresh = (key === "f5" || key === "r") && e.ctrlKey && (key !== "r" || e.shiftKey) || key === "r" && e.metaKey && e.shiftKey || key === "r" && e.metaKey && e.altKey;
971
+ if (isHardRefresh) clearVersion();
972
+ };
973
+ window.addEventListener("keydown", onKey);
974
+ return () => window.removeEventListener("keydown", onKey);
975
+ }
976
+ }, [queryClient]);
977
+ return ready ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children }) : null;
978
+ };
979
+
980
+ // src/provider/env-provider.tsx
981
+ var import_react4 = require("react");
982
+
692
983
  // src/configs/axios-client.ts
693
984
  var import_axios = __toESM(require("axios"));
694
985
 
@@ -2802,7 +3093,7 @@ function matchDomain(record, domain) {
2802
3093
  }
2803
3094
 
2804
3095
  // src/utils/function.ts
2805
- var import_react = require("react");
3096
+ var import_react3 = require("react");
2806
3097
  var updateTokenParamInOriginalRequest = (originalRequest, newAccessToken) => {
2807
3098
  if (!originalRequest.data) return originalRequest.data;
2808
3099
  if (typeof originalRequest.data === "string") {
@@ -3036,562 +3327,7 @@ var axiosClient = {
3036
3327
  }
3037
3328
  };
3038
3329
 
3039
- // src/environment/EnvStore.ts
3040
- function createEnvStore(store, localStorageUtil, sessionStorageUtil) {
3041
- const getEnvState = () => store.getState().env;
3042
- const setupEnvConfig = () => {
3043
- const env2 = getEnvState();
3044
- return {
3045
- baseUrl: env2?.baseUrl,
3046
- requests: env2?.requests,
3047
- context: env2?.context,
3048
- defaultCompany: env2?.defaultCompany,
3049
- config: env2?.config,
3050
- companies: env2?.companies || [],
3051
- user: env2?.user,
3052
- db: env2?.db,
3053
- refreshTokenEndpoint: env2?.refreshTokenEndpoint
3054
- };
3055
- };
3056
- const setupEnv = (envConfig) => {
3057
- const dispatch = store.dispatch;
3058
- const updatedEnv = {
3059
- ...envConfig,
3060
- localStorageUtils: localStorageUtil,
3061
- sessionStorageUtils: sessionStorageUtil
3062
- };
3063
- const requests = axiosClient.init(updatedEnv);
3064
- dispatch(setEnv({ ...updatedEnv, requests }));
3065
- return setupEnvConfig();
3066
- };
3067
- const setupUid = (uid) => {
3068
- store.dispatch(setUid(uid));
3069
- return setupEnvConfig();
3070
- };
3071
- const setupLang = (lang) => {
3072
- store.dispatch(setLang(lang));
3073
- return setupEnvConfig();
3074
- };
3075
- const setupAllowCompanies = (allowCompanies) => {
3076
- store.dispatch(setAllowCompanies(allowCompanies));
3077
- return setupEnvConfig();
3078
- };
3079
- const setupCompanies = (companies) => {
3080
- store.dispatch(setCompanies(companies));
3081
- return setupEnvConfig();
3082
- };
3083
- const setupDefaultCompany = (company) => {
3084
- store.dispatch(setDefaultCompany(company));
3085
- return setupEnvConfig();
3086
- };
3087
- const setUserInfo = (userInfo) => {
3088
- store.dispatch(setUser(userInfo));
3089
- return setupEnvConfig();
3090
- };
3091
- return {
3092
- getEnvConfig: setupEnvConfig,
3093
- setupEnv,
3094
- setUid: setupUid,
3095
- setLang: setupLang,
3096
- setAllowCompanies: setupAllowCompanies,
3097
- setCompanies: setupCompanies,
3098
- setDefaultCompany: setupDefaultCompany,
3099
- setUserInfo
3100
- };
3101
- }
3102
- var env = null;
3103
- function getEnv() {
3104
- if (!env) {
3105
- env = createEnvStore(envStore, localStorageUtils(), sessionStorageUtils());
3106
- }
3107
- return env;
3108
- }
3109
-
3110
- // src/services/view-service/index.ts
3111
- var ViewService = {
3112
- async getView({
3113
- model,
3114
- views,
3115
- context = {},
3116
- options = {},
3117
- aid
3118
- }) {
3119
- const env2 = getEnv();
3120
- const defaultOptions = {
3121
- load_filters: true,
3122
- toolbar: true,
3123
- action_id: aid
3124
- };
3125
- const jsonDataView = {
3126
- model,
3127
- method: "get_fields_view_v2" /* GET_FIELD_VIEW */,
3128
- kwargs: {
3129
- views,
3130
- options: { ...options, ...defaultOptions }
3131
- },
3132
- with_context: context
3133
- };
3134
- return env2?.requests?.post("/call" /* CALL_PATH */, jsonDataView, {
3135
- headers: {
3136
- "Content-Type": "application/json"
3137
- }
3138
- });
3139
- },
3140
- async getMenu(context) {
3141
- const env2 = getEnv();
3142
- const jsonData = {
3143
- model: "ir.ui.menu" /* MENU */,
3144
- method: "web_search_read" /* WEB_SEARCH_READ */,
3145
- ids: [],
3146
- with_context: context,
3147
- kwargs: {
3148
- specification: {
3149
- active: {},
3150
- name: {},
3151
- is_display: {},
3152
- sequence: {},
3153
- complete_name: {},
3154
- action: {
3155
- fields: {
3156
- display_name: {},
3157
- type: {},
3158
- binding_view_types: {}
3159
- // res_model: {},
3160
- }
3161
- },
3162
- url_icon: {},
3163
- web_icon: {},
3164
- web_icon_data: {},
3165
- groups_id: {
3166
- fields: {
3167
- full_name: {}
3168
- },
3169
- limit: 40,
3170
- order: ""
3171
- },
3172
- display_name: {},
3173
- child_id: {
3174
- fields: {
3175
- active: {},
3176
- name: {},
3177
- is_display: {},
3178
- sequence: {},
3179
- complete_name: {},
3180
- action: {
3181
- fields: {
3182
- display_name: {},
3183
- type: {},
3184
- binding_view_types: {}
3185
- // res_model: {},
3186
- }
3187
- },
3188
- url_icon: {},
3189
- web_icon: {},
3190
- web_icon_data: {},
3191
- groups_id: {
3192
- fields: {
3193
- full_name: {}
3194
- },
3195
- limit: 40,
3196
- order: ""
3197
- },
3198
- display_name: {},
3199
- child_id: {
3200
- fields: {
3201
- active: {},
3202
- name: {},
3203
- is_display: {},
3204
- sequence: {},
3205
- complete_name: {},
3206
- action: {
3207
- fields: {
3208
- display_name: {},
3209
- type: {},
3210
- binding_view_types: {}
3211
- // res_model: {},
3212
- }
3213
- },
3214
- url_icon: {},
3215
- web_icon: {},
3216
- web_icon_data: {},
3217
- groups_id: {
3218
- fields: {
3219
- full_name: {}
3220
- },
3221
- limit: 40,
3222
- order: ""
3223
- },
3224
- display_name: {},
3225
- child_id: {
3226
- fields: {
3227
- active: {},
3228
- name: {},
3229
- is_display: {},
3230
- sequence: {},
3231
- complete_name: {},
3232
- action: {
3233
- fields: {
3234
- display_name: {},
3235
- type: {},
3236
- binding_view_types: {}
3237
- // res_model: {},
3238
- }
3239
- },
3240
- url_icon: {},
3241
- web_icon: {},
3242
- web_icon_data: {},
3243
- groups_id: {
3244
- fields: {
3245
- full_name: {}
3246
- },
3247
- limit: 40,
3248
- order: ""
3249
- },
3250
- display_name: {},
3251
- child_id: {
3252
- fields: {},
3253
- limit: 40,
3254
- order: ""
3255
- }
3256
- },
3257
- limit: 40,
3258
- order: ""
3259
- }
3260
- },
3261
- limit: 40,
3262
- order: ""
3263
- }
3264
- },
3265
- limit: 40,
3266
- order: ""
3267
- }
3268
- },
3269
- domain: [
3270
- "&",
3271
- ["is_display", "=", true],
3272
- "&",
3273
- ["active", "=", true],
3274
- ["parent_id", "=", false]
3275
- ]
3276
- }
3277
- };
3278
- return env2?.requests?.post("/call" /* CALL_PATH */, jsonData, {
3279
- headers: {
3280
- "Content-Type": "application/json"
3281
- }
3282
- });
3283
- },
3284
- async getActionDetail(aid, context) {
3285
- const env2 = getEnv();
3286
- const jsonData = {
3287
- model: "ir.actions.act_window" /* WINDOW_ACTION */,
3288
- method: "web_read" /* WEB_READ */,
3289
- ids: [aid],
3290
- with_context: context,
3291
- kwargs: {
3292
- specification: {
3293
- id: {},
3294
- name: {},
3295
- res_model: {},
3296
- views: {},
3297
- view_mode: {},
3298
- mobile_view_mode: {},
3299
- domain: {},
3300
- context: {},
3301
- groups_id: {},
3302
- search_view_id: {}
3303
- }
3304
- }
3305
- };
3306
- return env2?.requests?.post("/call" /* CALL_PATH */, jsonData, {
3307
- headers: {
3308
- "Content-Type": "application/json"
3309
- }
3310
- });
3311
- },
3312
- async getResequence({
3313
- model,
3314
- ids,
3315
- context,
3316
- offset
3317
- }) {
3318
- const env2 = getEnv();
3319
- const jsonData = {
3320
- model,
3321
- with_context: context,
3322
- ids,
3323
- field: "sequence",
3324
- ...offset > 0 ? { offset } : {}
3325
- };
3326
- return env2?.requests.post("/web/dataset/resequence", jsonData, {
3327
- headers: {
3328
- "Content-Type": "application/json"
3329
- }
3330
- });
3331
- },
3332
- async getSelectionItem({ data }) {
3333
- const env2 = getEnv();
3334
- const jsonData = {
3335
- model: data.model,
3336
- ids: [],
3337
- method: "get_data_select",
3338
- with_context: data.context,
3339
- kwargs: {
3340
- count_limit: 10001,
3341
- domain: data.domain ? data.domain : [],
3342
- offset: 0,
3343
- order: "",
3344
- specification: data?.specification ?? {
3345
- id: {},
3346
- name: {},
3347
- display_name: {}
3348
- }
3349
- }
3350
- };
3351
- return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
3352
- headers: {
3353
- "Content-Type": "application/json"
3354
- }
3355
- });
3356
- },
3357
- async loadMessages() {
3358
- const env2 = getEnv();
3359
- return env2.requests.post(
3360
- "/load_message_failures" /* LOAD_MESSAGE */,
3361
- {},
3362
- {
3363
- headers: {
3364
- "Content-Type": "application/json"
3365
- }
3366
- }
3367
- );
3368
- },
3369
- async getVersion() {
3370
- const env2 = getEnv();
3371
- console.log("env?.requests", env2, env2?.requests);
3372
- return env2?.requests?.get("", {
3373
- headers: {
3374
- "Content-Type": "application/json"
3375
- }
3376
- });
3377
- },
3378
- async get2FAMethods({
3379
- method,
3380
- with_context
3381
- }) {
3382
- const env2 = getEnv();
3383
- const jsonData = {
3384
- method,
3385
- with_context
3386
- };
3387
- return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
3388
- headers: {
3389
- "Content-Type": "application/json"
3390
- }
3391
- });
3392
- },
3393
- async verify2FA({
3394
- method,
3395
- with_context,
3396
- code,
3397
- device,
3398
- location
3399
- }) {
3400
- const env2 = getEnv();
3401
- const jsonData = {
3402
- method,
3403
- kwargs: {
3404
- vals: {
3405
- code,
3406
- device,
3407
- location
3408
- }
3409
- },
3410
- with_context
3411
- };
3412
- return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
3413
- headers: {
3414
- "Content-Type": "application/json"
3415
- },
3416
- withCredentials: true
3417
- });
3418
- },
3419
- async signInSSO({
3420
- redirect_uri,
3421
- state,
3422
- client_id,
3423
- response_type,
3424
- path
3425
- }) {
3426
- const env2 = getEnv();
3427
- const params = new URLSearchParams({
3428
- response_type,
3429
- client_id,
3430
- redirect_uri,
3431
- state
3432
- });
3433
- const url = `${path}?${params.toString()}`;
3434
- return env2?.requests.get(url, {
3435
- headers: {
3436
- "Content-Type": "application/json"
3437
- },
3438
- withCredentials: true
3439
- });
3440
- },
3441
- async grantAccess({
3442
- redirect_uri,
3443
- state,
3444
- client_id,
3445
- scopes
3446
- }) {
3447
- const env2 = getEnv();
3448
- const jsonData = {
3449
- redirect_uri,
3450
- state,
3451
- client_id,
3452
- scopes
3453
- };
3454
- return env2?.requests.post("/grant-access" /* GRANT_ACCESS */, jsonData, {
3455
- headers: {
3456
- "Content-Type": "application/json"
3457
- },
3458
- withCredentials: true
3459
- });
3460
- },
3461
- async getFieldsViewSecurity({
3462
- method,
3463
- token,
3464
- views
3465
- }) {
3466
- const env2 = getEnv();
3467
- const jsonData = {
3468
- method,
3469
- kwargs: {
3470
- views
3471
- },
3472
- with_context: {
3473
- token
3474
- }
3475
- };
3476
- return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
3477
- headers: {
3478
- "Content-Type": "application/json"
3479
- }
3480
- });
3481
- },
3482
- async settingsWebRead2fa({
3483
- method,
3484
- model,
3485
- kwargs,
3486
- token
3487
- }) {
3488
- const env2 = getEnv();
3489
- const jsonData = {
3490
- method,
3491
- model,
3492
- kwargs,
3493
- with_context: {
3494
- token
3495
- }
3496
- };
3497
- return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
3498
- headers: {
3499
- "Content-Type": "application/json"
3500
- }
3501
- });
3502
- },
3503
- async requestSetupTotp({ method, token }) {
3504
- const env2 = getEnv();
3505
- const jsonData = {
3506
- method,
3507
- with_context: {
3508
- token
3509
- }
3510
- };
3511
- return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
3512
- headers: {
3513
- "Content-Type": "application/json"
3514
- }
3515
- });
3516
- },
3517
- async verifyTotp({
3518
- method,
3519
- action_token,
3520
- code
3521
- }) {
3522
- const env2 = getEnv();
3523
- const jsonData = {
3524
- method,
3525
- kwargs: {
3526
- vals: {
3527
- code
3528
- }
3529
- },
3530
- with_context: {
3531
- action_token
3532
- }
3533
- };
3534
- return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
3535
- headers: {
3536
- "Content-Type": "application/json"
3537
- }
3538
- });
3539
- },
3540
- async removeTotpSetUp({ method, token }) {
3541
- const env2 = getEnv();
3542
- const jsonData = {
3543
- method,
3544
- with_context: {
3545
- token
3546
- }
3547
- };
3548
- return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
3549
- headers: {
3550
- "Content-Type": "application/json"
3551
- }
3552
- });
3553
- }
3554
- };
3555
- var view_service_default = ViewService;
3556
-
3557
- // src/provider/version-gate-provider.tsx
3558
- var import_jsx_runtime4 = require("react/jsx-runtime");
3559
- var VersionGate = ({ children }) => {
3560
- const queryClient = (0, import_react_query2.useQueryClient)();
3561
- const [ready, setReady] = (0, import_react2.useState)(false);
3562
- (0, import_react2.useEffect)(() => {
3563
- const clearVersion = () => {
3564
- queryClient.clear();
3565
- localStorage.removeItem("__api_version__");
3566
- };
3567
- const validateVersion = async () => {
3568
- const serverVersion = await view_service_default.getVersion();
3569
- console.log("serverVersion", serverVersion);
3570
- const cached = localStorage.getItem("__api_version__");
3571
- if (cached !== serverVersion?.api_version) {
3572
- clearVersion();
3573
- localStorage.setItem("__api_version__", serverVersion?.api_version);
3574
- } else {
3575
- console.log("Api version:", serverVersion?.api_version);
3576
- }
3577
- setReady(true);
3578
- };
3579
- validateVersion();
3580
- if (typeof window !== "undefined") {
3581
- const onKey = (e) => {
3582
- const key = e.key.toLowerCase();
3583
- const isHardRefresh = (key === "f5" || key === "r") && e.ctrlKey && (key !== "r" || e.shiftKey) || key === "r" && e.metaKey && e.shiftKey || key === "r" && e.metaKey && e.altKey;
3584
- if (isHardRefresh) clearVersion();
3585
- };
3586
- window.addEventListener("keydown", onKey);
3587
- return () => window.removeEventListener("keydown", onKey);
3588
- }
3589
- }, [queryClient]);
3590
- return ready ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children }) : null;
3591
- };
3592
-
3593
3330
  // src/provider/env-provider.tsx
3594
- var import_react3 = require("react");
3595
3331
  var import_jsx_runtime5 = require("react/jsx-runtime");
3596
3332
  var initialEnvState = {
3597
3333
  baseUrl: "",
@@ -3613,21 +3349,21 @@ var initialEnvState = {
3613
3349
  tz: "Asia/Saigon"
3614
3350
  }
3615
3351
  };
3616
- var EnvContext = (0, import_react3.createContext)(null);
3352
+ var EnvContext = (0, import_react4.createContext)(null);
3617
3353
  function EnvProvider({
3618
3354
  children,
3619
3355
  localStorageUtils: localStorageUtil = localStorageUtils(),
3620
3356
  sessionStorageUtils: sessionStorageUtil = sessionStorageUtils()
3621
3357
  }) {
3622
- const [env2, setEnvState] = (0, import_react3.useState)({
3358
+ const [env, setEnvState] = (0, import_react4.useState)({
3623
3359
  ...initialEnvState,
3624
3360
  localStorageUtils: localStorageUtil,
3625
3361
  sessionStorageUtils: sessionStorageUtil
3626
3362
  });
3627
- const setupEnv = (0, import_react3.useCallback)(
3363
+ const setupEnv = (0, import_react4.useCallback)(
3628
3364
  (envConfig) => {
3629
3365
  const updatedEnv = {
3630
- ...env2,
3366
+ ...env,
3631
3367
  ...envConfig,
3632
3368
  localStorageUtils: localStorageUtil,
3633
3369
  sessionStorageUtils: sessionStorageUtil
@@ -3636,33 +3372,33 @@ function EnvProvider({
3636
3372
  setEnvState({ ...updatedEnv, requests });
3637
3373
  return updatedEnv;
3638
3374
  },
3639
- [env2, localStorageUtil, sessionStorageUtil]
3375
+ [env, localStorageUtil, sessionStorageUtil]
3640
3376
  );
3641
- const setUid2 = (0, import_react3.useCallback)((uid) => {
3377
+ const setUid2 = (0, import_react4.useCallback)((uid) => {
3642
3378
  setEnvState((prev) => ({
3643
3379
  ...prev,
3644
3380
  context: { ...prev.context, uid }
3645
3381
  }));
3646
3382
  }, []);
3647
- const setLang2 = (0, import_react3.useCallback)((lang) => {
3383
+ const setLang2 = (0, import_react4.useCallback)((lang) => {
3648
3384
  setEnvState((prev) => ({
3649
3385
  ...prev,
3650
3386
  context: { ...prev.context, lang }
3651
3387
  }));
3652
3388
  }, []);
3653
- const setAllowCompanies2 = (0, import_react3.useCallback)((allowed_company_ids) => {
3389
+ const setAllowCompanies2 = (0, import_react4.useCallback)((allowed_company_ids) => {
3654
3390
  setEnvState((prev) => ({
3655
3391
  ...prev,
3656
3392
  context: { ...prev.context, allowed_company_ids }
3657
3393
  }));
3658
3394
  }, []);
3659
- const setCompanies2 = (0, import_react3.useCallback)((companies) => {
3395
+ const setCompanies2 = (0, import_react4.useCallback)((companies) => {
3660
3396
  setEnvState((prev) => ({
3661
3397
  ...prev,
3662
3398
  companies
3663
3399
  }));
3664
3400
  }, []);
3665
- const setDefaultCompany2 = (0, import_react3.useCallback)(
3401
+ const setDefaultCompany2 = (0, import_react4.useCallback)(
3666
3402
  (defaultCompany) => {
3667
3403
  setEnvState((prev) => ({
3668
3404
  ...prev,
@@ -3671,19 +3407,19 @@ function EnvProvider({
3671
3407
  },
3672
3408
  []
3673
3409
  );
3674
- const setUserInfo = (0, import_react3.useCallback)((user) => {
3410
+ const setUserInfo = (0, import_react4.useCallback)((user) => {
3675
3411
  setEnvState((prev) => ({
3676
3412
  ...prev,
3677
3413
  user
3678
3414
  }));
3679
3415
  }, []);
3680
- const setConfig2 = (0, import_react3.useCallback)((config) => {
3416
+ const setConfig2 = (0, import_react4.useCallback)((config) => {
3681
3417
  setEnvState((prev) => ({
3682
3418
  ...prev,
3683
3419
  config
3684
3420
  }));
3685
3421
  }, []);
3686
- const setEnvFile2 = (0, import_react3.useCallback)((envFile) => {
3422
+ const setEnvFile2 = (0, import_react4.useCallback)((envFile) => {
3687
3423
  setEnvState((prev) => ({
3688
3424
  ...prev,
3689
3425
  envFile
@@ -3693,7 +3429,7 @@ function EnvProvider({
3693
3429
  EnvContext.Provider,
3694
3430
  {
3695
3431
  value: {
3696
- env: env2,
3432
+ env,
3697
3433
  setupEnv,
3698
3434
  setUid: setUid2,
3699
3435
  setLang: setLang2,
@@ -3709,7 +3445,7 @@ function EnvProvider({
3709
3445
  );
3710
3446
  }
3711
3447
  function useEnv() {
3712
- const context = (0, import_react3.useContext)(EnvContext);
3448
+ const context = (0, import_react4.useContext)(EnvContext);
3713
3449
  if (!context) {
3714
3450
  throw new Error("useEnv must be used within an EnvProvider");
3715
3451
  }