@webspatial/platform-visionos 1.0.0 → 1.0.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webspatial/platform-visionos",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Used to publish WebSpatial projects to Apple Vision Pro",
5
5
  "type": "commonjs",
6
6
  "engines": {
@@ -76,6 +76,7 @@ class SpatialWindowContainer: SpatialObject {
76
76
  var toggleImmersiveSpace = PassthroughSubject<Bool, Never>()
77
77
 
78
78
  var setSize = PassthroughSubject<CGSize, Never>()
79
+ var setResizeRange = PassthroughSubject<ResizeRange, Never>()
79
80
 
80
81
  var updateFrame = false
81
82
  var openWindowData = PassthroughSubject<WindowContainerData, Never>()
@@ -27,20 +27,24 @@ struct PlainWindowContainerView: View {
27
27
  }
28
28
 
29
29
  private func setResizeRange(resizeRange: ResizeRange) {
30
- sceneDelegate.window?.windowScene?
31
- .requestGeometryUpdate(
32
- .Vision(
33
- minimumSize: CGSize(
34
- width: resizeRange.minWidth ?? 0,
35
- height: resizeRange
36
- .minHeight ?? 0
37
- ),
38
- maximumSize: CGSize(
39
- width: resizeRange.maxWidth ?? .infinity,
40
- height: resizeRange.maxHeight ?? .infinity
30
+ DispatchQueue.main.asyncAfter(deadline: .now() + 0.0) {
31
+ sceneDelegate.window?.windowScene?
32
+ .requestGeometryUpdate(
33
+ .Vision(
34
+ minimumSize: CGSize(
35
+ width: resizeRange.minWidth ?? 0,
36
+ height: resizeRange
37
+ .minHeight ?? 0
38
+ ),
39
+ maximumSize: CGSize(
40
+ width: resizeRange.maxWidth ?? .infinity,
41
+ height: resizeRange.maxHeight ?? .infinity
42
+ )
41
43
  )
42
- )
43
- )
44
+ ) { error in
45
+ print("error:", error)
46
+ }
47
+ }
44
48
  }
45
49
 
46
50
  var body: some View {
@@ -90,11 +94,14 @@ struct PlainWindowContainerView: View {
90
94
  .onReceive(windowContainerContent.setSize) { newSize in
91
95
  setSize(size: newSize)
92
96
  }
97
+ .onReceive(windowContainerContent.setResizeRange) { resizeRange in
98
+ self.setResizeRange(resizeRange: resizeRange)
99
+ }
93
100
  .onAppear {
94
101
  let wd = WindowContainerMgr.Instance.getValue()
95
102
  if let range = wd.resizeRange {
96
103
  self.setResizeRange(resizeRange: range)
97
- if (range.minWidth != nil || range.minWidth != nil) && range.minWidth == range.maxWidth && range.minHeight == range.maxHeight {
104
+ if (range.minWidth != nil || range.minHeight != nil) && range.minWidth == range.maxWidth && range.minHeight == range.maxHeight {
98
105
  self.setResizibility(resizingRestrictions: .none)
99
106
  } else {
100
107
  self.setResizibility(resizingRestrictions: .freeform)
@@ -108,6 +108,9 @@ struct web_spatialApp: App {
108
108
  }
109
109
  // reset to mainScene size
110
110
  wgm.setToMainSceneCfg()
111
+ if let resizeRange = wgm.getValue().resizeRange {
112
+ wc.setResizeRange.send(resizeRange)
113
+ }
111
114
  wc.setSize.send(getDefaultSize())
112
115
  }
113
116
  }