Skip to content

Commit cec3243

Browse files
committed
fix(platform): fix "enter final app->not found when admin login" error
solution EnterFinalApp->_startFinalApp: handle "CacheUtils.getPackages return empty" case
1 parent b53a595 commit cec3243

File tree

5 files changed

+115
-122
lines changed

5 files changed

+115
-122
lines changed

doc/1.3.0.org

Lines changed: 14 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -667,7 +667,7 @@ run p
667667

668668

669669

670-
*** TODO fix Enter Final App: not found
670+
*** DONE fix Enter Final App: not found
671671

672672

673673
*** TODO fix EnterApp
@@ -705,47 +705,6 @@ editor-whole
705705
web
706706
engine-whole
707707

708-
** TODO 切换场景
709-
710-
TODO 动态加载 without assetbundle
711-
712-
713-
- first load all scenes, only make current scene visiable
714-
- script to control which scene visiable
715-
716-
717-
script:
718-
control visiable
719-
bind keyboard event to switch scene
720-
721-
722-
723-
TODO unbind event when stop
724-
725-
726-
727-
728-
* TODO 3d ui 数据绑定
729-
730-
refer to:
731-
https://www.grapecity.com.cn/blogs/digital-twins-and-3d-visualization
732-
733-
734-
TODO 上传json数据,用来提供ui的数据
735-
TODO 获得后端json数据?
736-
737-
TODO 修改模型名,与之绑定
738-
739-
740-
741-
742-
TODO support status: can change model,ui color to red
743-
744-
745-
# * TODO 2qi
746-
747-
# TODO ...
748-
749708

750709

751710

@@ -779,6 +738,19 @@ TODO fix: editor loop will increase
779738
Snake, Scene use gltf model!
780739

781740

741+
script:
742+
control visiable
743+
bind keyboard event to switch scene
744+
745+
746+
747+
TODO unbind event when stop
748+
749+
750+
** TODO add 2d ui
751+
752+
** TODO ...
753+
782754

783755
* TODO publish
784756

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
#Start(1707636331030)
2-
#Done(1707636331087)
1+
#Start(1708048029119)
2+
#Done(1708048029161)
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# ninja log v6
2-
1 23 1707636331052222152 src/service/ServiceType.ast 785165cefc5839bb
3-
3 24 1707636331052378247 Meta3dEngineWholeProtocol.cmi 5f7f0af9dc9a4eae
4-
23 31 1707636331061440202 src/service/ServiceType.d c1e4bb8db3eac460
5-
31 57 1707636331086670871 src/service/ServiceType-Meta3dEngineWholeProtocol.cmj 7fb79dbc74bc9892
6-
31 57 1707636331086670871 src/service/ServiceType-Meta3dEngineWholeProtocol.cmi 7fb79dbc74bc9892
7-
31 57 1707636331086670871 ../es6_global/src/service/ServiceType.bs.js 7fb79dbc74bc9892
8-
31 57 1707636331086670871 ../js/src/service/ServiceType.bs.js 7fb79dbc74bc9892
2+
0 15 1708048029131709816 src/service/ServiceType.ast 785165cefc5839bb
3+
0 15 1708048029131701448 Meta3dEngineWholeProtocol.cmi 5f7f0af9dc9a4eae
4+
15 23 1708048029141896385 src/service/ServiceType.d c1e4bb8db3eac460
5+
23 42 1708048029160969149 src/service/ServiceType-Meta3dEngineWholeProtocol.cmj 79a6ea5e7dd9837b
6+
23 42 1708048029160969149 src/service/ServiceType-Meta3dEngineWholeProtocol.cmi 79a6ea5e7dd9837b
7+
23 42 1708048029160969149 ../es6_global/src/service/ServiceType.bs.js 79a6ea5e7dd9837b
8+
23 42 1708048029160969149 ../js/src/service/ServiceType.bs.js 79a6ea5e7dd9837b

platform/frontend/src/external_layer/ui/app/enter_final_app/components/EnterFinalApp.res

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,21 @@ let make = (~service: FrontendType.service) => {
4040
DomExtend.querySelector(DomExtend.document, "#canvas")->Meta3dCommonlib.OptionSt.getExn
4141

4242
CacheUtils.getPackages(version->Some)
43-
->Meta3dCommonlib.PromiseSt.map(Meta3dCommonlib.NullableSt.getExn)
44-
->Js.Promise.then_(((_, files)) => {
45-
let enginePackageBinaryFile = files->Obj.magic->Meta3dCommonlib.ArraySt.getExn(1)
46-
43+
->Meta3dCommonlib.PromiseSt.bind(packages =>
44+
packages->Meta3dCommonlib.NullableSt.isNullable
45+
? SelectPackageUtils.findEnginePackageData(service)->Meta3dCommonlib.PromiseSt.map(((
46+
_,
47+
files,
48+
)) => {
49+
files->Obj.magic->Meta3dCommonlib.ArraySt.getExn(0)
50+
})
51+
: Js.Promise.resolve(
52+
packages->Obj.magic->Meta3dCommonlib.NullableSt.getExn,
53+
)->Meta3dCommonlib.PromiseSt.map(((_, files)) => {
54+
files->Obj.magic->Meta3dCommonlib.ArraySt.getExn(1)
55+
})
56+
)
57+
->Js.Promise.then_(enginePackageBinaryFile => {
4758
let (meta3dState, _, entryExtensionProtocolName) = Meta3d.Main.loadPackage(
4859
enginePackageBinaryFile,
4960
)
Lines changed: 77 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,75 @@
1+
let _findPackageData = (service: FrontendType.service, packageData) => {
2+
packageData
3+
->Meta3dCommonlib.ListSt.traverseReducePromiseM((list{}, list{}), (
4+
(jsons, files),
5+
(name, entryExtensionName, protocolName),
6+
) => {
7+
service.backend.findNewestPublishPackage(. progress => (), protocolName, name)
8+
->Meta3dBsMostDefault.Most.map(data => {
9+
data->Meta3dCommonlib.NullableSt.isNullable
10+
? Meta3dCommonlib.Exception.throwErr(
11+
Meta3dCommonlib.Exception.buildErr(
12+
Meta3dCommonlib.Log.buildErrorMessage(
13+
~title={j`package not exist`},
14+
~description={
15+
j``
16+
},
17+
~reason="",
18+
~solution=j``,
19+
~params=j`protocolName: ${protocolName}, name: ${name}`,
20+
),
21+
),
22+
)
23+
: ()
24+
25+
let (
26+
file,
27+
entryExtensionProtocolVersion,
28+
packageVersion,
29+
entryExtensionProtocolIconBase64,
30+
entryExtensionProtocolConfigStr,
31+
) =
32+
data->Meta3dCommonlib.NullableSt.getExn
33+
34+
(
35+
(
36+
name,
37+
entryExtensionName,
38+
protocolName,
39+
entryExtensionProtocolVersion,
40+
packageVersion,
41+
entryExtensionProtocolIconBase64,
42+
entryExtensionProtocolConfigStr,
43+
)
44+
->Obj.magic
45+
->Js.Json.stringify,
46+
file,
47+
)
48+
}, _)
49+
->MostUtils.toPromise
50+
->Js.Promise.then_(((json, file)) => {
51+
(
52+
jsons->Meta3dCommonlib.ListSt.push(json),
53+
files->Meta3dCommonlib.ListSt.push(file),
54+
)->Js.Promise.resolve
55+
}, _)
56+
})
57+
->Js.Promise.then_(((jsons, files)) => {
58+
(
59+
jsons->Meta3dCommonlib.ListSt.toArray,
60+
files->Meta3dCommonlib.ListSt.toArray,
61+
)->Js.Promise.resolve
62+
}, _)
63+
}
64+
65+
let findEnginePackageData = (service: FrontendType.service) => {
66+
list{
67+
InitPackageUtils.getEditorWholeAndEngineWholePackageData()
68+
->Meta3dCommonlib.ListSt.getLast
69+
->Meta3dCommonlib.OptionSt.getExn,
70+
}->_findPackageData(service, _)
71+
}
72+
173
let selectEditorWholeAndEngineWholePackages = (
274
service: FrontendType.service,
375
dispatch,
@@ -10,70 +82,8 @@ let selectEditorWholeAndEngineWholePackages = (
1082
switch data->Meta3dCommonlib.OptionSt.fromNullable {
1183
| None =>
1284
InitPackageUtils.getEditorWholeAndEngineWholePackageData()
13-
->Meta3dCommonlib.ListSt.traverseReducePromiseM((list{}, list{}), (
14-
(jsons, files),
15-
(name, entryExtensionName, protocolName),
16-
) => {
17-
service.backend.findNewestPublishPackage(. progress => (), protocolName, name)
18-
->Meta3dBsMostDefault.Most.map(
19-
data => {
20-
data->Meta3dCommonlib.NullableSt.isNullable
21-
? Meta3dCommonlib.Exception.throwErr(
22-
Meta3dCommonlib.Exception.buildErr(
23-
Meta3dCommonlib.Log.buildErrorMessage(
24-
~title={j`package not exist`},
25-
~description={
26-
j``
27-
},
28-
~reason="",
29-
~solution=j``,
30-
~params=j`protocolName: ${protocolName}, name: ${name}`,
31-
),
32-
),
33-
)
34-
: ()
35-
36-
let (
37-
file,
38-
entryExtensionProtocolVersion,
39-
packageVersion,
40-
entryExtensionProtocolIconBase64,
41-
entryExtensionProtocolConfigStr,
42-
) =
43-
data->Meta3dCommonlib.NullableSt.getExn
44-
45-
(
46-
(
47-
name,
48-
entryExtensionName,
49-
protocolName,
50-
entryExtensionProtocolVersion,
51-
packageVersion,
52-
entryExtensionProtocolIconBase64,
53-
entryExtensionProtocolConfigStr,
54-
)
55-
->Obj.magic
56-
->Js.Json.stringify,
57-
file,
58-
)
59-
},
60-
_,
61-
)
62-
->MostUtils.toPromise
63-
->Js.Promise.then_(
64-
((json, file)) => {
65-
(
66-
jsons->Meta3dCommonlib.ListSt.push(json),
67-
files->Meta3dCommonlib.ListSt.push(file),
68-
)->Js.Promise.resolve
69-
},
70-
_,
71-
)
72-
})
85+
->_findPackageData(service, _)
7386
->Js.Promise.then_(((jsons, files)) => {
74-
let jsons = jsons->Meta3dCommonlib.ListSt.toArray
75-
let files = files->Meta3dCommonlib.ListSt.toArray
76-
7787
CacheUtils.cachePackages(version, jsons, files)->Js.Promise.then_(
7888
_ => (jsons, files)->Js.Promise.resolve,
7989
_,
@@ -123,8 +133,8 @@ let selectEditorWholeAndEngineWholePackages = (
123133

124134
()->Js.Promise.resolve
125135
}, _)
126-
// ->Js.Promise.then_(() => {
127-
// Js.log("finish2")
128-
// ()->Js.Promise.resolve
129-
// }, _)
136+
// ->Js.Promise.then_(() => {
137+
// Js.log("finish2")
138+
// ()->Js.Promise.resolve
139+
// }, _)
130140
}

0 commit comments

Comments
 (0)