one 1.2.5 → 1.2.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/cjs/ui/Slot.cjs +42 -0
- package/dist/cjs/ui/Slot.js +27 -0
- package/dist/cjs/ui/Slot.js.map +6 -0
- package/dist/cjs/ui/Slot.native.js +48 -0
- package/dist/cjs/ui/Slot.native.js.map +1 -0
- package/dist/cjs/ui/TabContext.cjs +44 -0
- package/dist/cjs/ui/TabContext.js +35 -0
- package/dist/cjs/ui/TabContext.js.map +6 -0
- package/dist/cjs/ui/TabContext.native.js +47 -0
- package/dist/cjs/ui/TabContext.native.js.map +1 -0
- package/dist/cjs/ui/TabList.cjs +52 -0
- package/dist/cjs/ui/TabList.js +38 -0
- package/dist/cjs/ui/TabList.js.map +6 -0
- package/dist/cjs/ui/TabList.native.js +57 -0
- package/dist/cjs/ui/TabList.native.js.map +1 -0
- package/dist/cjs/ui/TabRouter.cjs +47 -0
- package/dist/cjs/ui/TabRouter.js +41 -0
- package/dist/cjs/ui/TabRouter.js.map +6 -0
- package/dist/cjs/ui/TabRouter.native.js +57 -0
- package/dist/cjs/ui/TabRouter.native.js.map +1 -0
- package/dist/cjs/ui/TabSlot.cjs +115 -0
- package/dist/cjs/ui/TabSlot.js +91 -0
- package/dist/cjs/ui/TabSlot.js.map +6 -0
- package/dist/cjs/ui/TabSlot.native.js +120 -0
- package/dist/cjs/ui/TabSlot.native.js.map +1 -0
- package/dist/cjs/ui/TabTrigger.cjs +151 -0
- package/dist/cjs/ui/TabTrigger.js +120 -0
- package/dist/cjs/ui/TabTrigger.js.map +6 -0
- package/dist/cjs/ui/TabTrigger.native.js +153 -0
- package/dist/cjs/ui/TabTrigger.native.js.map +1 -0
- package/dist/cjs/ui/Tabs.cjs +175 -0
- package/dist/cjs/ui/Tabs.js +121 -0
- package/dist/cjs/ui/Tabs.js.map +6 -0
- package/dist/cjs/ui/Tabs.native.js +191 -0
- package/dist/cjs/ui/Tabs.native.js.map +1 -0
- package/dist/cjs/ui/common.cjs +160 -0
- package/dist/cjs/ui/common.js +146 -0
- package/dist/cjs/ui/common.js.map +6 -0
- package/dist/cjs/ui/common.native.js +223 -0
- package/dist/cjs/ui/common.native.js.map +1 -0
- package/dist/cjs/ui/index.cjs +18 -0
- package/dist/cjs/ui/index.js +15 -0
- package/dist/cjs/ui/index.js.map +6 -0
- package/dist/cjs/ui/index.native.js +21 -0
- package/dist/cjs/ui/index.native.js.map +1 -0
- package/dist/cjs/ui/useComponent.cjs +46 -0
- package/dist/cjs/ui/useComponent.js +37 -0
- package/dist/cjs/ui/useComponent.js.map +6 -0
- package/dist/cjs/ui/useComponent.native.js +53 -0
- package/dist/cjs/ui/useComponent.native.js.map +1 -0
- package/dist/esm/ui/Slot.js +17 -0
- package/dist/esm/ui/Slot.js.map +6 -0
- package/dist/esm/ui/Slot.mjs +19 -0
- package/dist/esm/ui/Slot.mjs.map +1 -0
- package/dist/esm/ui/Slot.native.js +22 -0
- package/dist/esm/ui/Slot.native.js.map +1 -0
- package/dist/esm/ui/TabContext.js +19 -0
- package/dist/esm/ui/TabContext.js.map +6 -0
- package/dist/esm/ui/TabContext.mjs +17 -0
- package/dist/esm/ui/TabContext.mjs.map +1 -0
- package/dist/esm/ui/TabContext.native.js +17 -0
- package/dist/esm/ui/TabContext.native.js.map +1 -0
- package/dist/esm/ui/TabList.js +24 -0
- package/dist/esm/ui/TabList.js.map +6 -0
- package/dist/esm/ui/TabList.mjs +28 -0
- package/dist/esm/ui/TabList.mjs.map +1 -0
- package/dist/esm/ui/TabList.native.js +30 -0
- package/dist/esm/ui/TabList.native.js.map +1 -0
- package/dist/esm/ui/TabRouter.js +27 -0
- package/dist/esm/ui/TabRouter.js.map +6 -0
- package/dist/esm/ui/TabRouter.mjs +24 -0
- package/dist/esm/ui/TabRouter.mjs.map +1 -0
- package/dist/esm/ui/TabRouter.native.js +31 -0
- package/dist/esm/ui/TabRouter.native.js.map +1 -0
- package/dist/esm/ui/TabSlot.js +80 -0
- package/dist/esm/ui/TabSlot.js.map +6 -0
- package/dist/esm/ui/TabSlot.mjs +89 -0
- package/dist/esm/ui/TabSlot.mjs.map +1 -0
- package/dist/esm/ui/TabSlot.native.js +91 -0
- package/dist/esm/ui/TabSlot.native.js.map +1 -0
- package/dist/esm/ui/TabTrigger.js +115 -0
- package/dist/esm/ui/TabTrigger.js.map +6 -0
- package/dist/esm/ui/TabTrigger.mjs +126 -0
- package/dist/esm/ui/TabTrigger.mjs.map +1 -0
- package/dist/esm/ui/TabTrigger.native.js +125 -0
- package/dist/esm/ui/TabTrigger.native.js.map +1 -0
- package/dist/esm/ui/Tabs.js +130 -0
- package/dist/esm/ui/Tabs.js.map +6 -0
- package/dist/esm/ui/Tabs.mjs +149 -0
- package/dist/esm/ui/Tabs.mjs.map +1 -0
- package/dist/esm/ui/Tabs.native.js +162 -0
- package/dist/esm/ui/Tabs.native.js.map +1 -0
- package/dist/esm/ui/common.js +133 -0
- package/dist/esm/ui/common.js.map +6 -0
- package/dist/esm/ui/common.mjs +135 -0
- package/dist/esm/ui/common.mjs.map +1 -0
- package/dist/esm/ui/common.native.js +195 -0
- package/dist/esm/ui/common.native.js.map +1 -0
- package/dist/esm/ui/index.js +2 -0
- package/dist/esm/ui/index.js.map +6 -0
- package/dist/esm/ui/index.mjs +2 -0
- package/dist/esm/ui/index.mjs.map +1 -0
- package/dist/esm/ui/index.native.js +2 -0
- package/dist/esm/ui/index.native.js.map +1 -0
- package/dist/esm/ui/useComponent.js +22 -0
- package/dist/esm/ui/useComponent.js.map +6 -0
- package/dist/esm/ui/useComponent.mjs +23 -0
- package/dist/esm/ui/useComponent.mjs.map +1 -0
- package/dist/esm/ui/useComponent.native.js +27 -0
- package/dist/esm/ui/useComponent.native.js.map +1 -0
- package/package.json +18 -9
- package/src/ui/README.md +121 -0
- package/src/ui/Slot.tsx +34 -0
- package/src/ui/TabContext.tsx +115 -0
- package/src/ui/TabList.tsx +47 -0
- package/src/ui/TabRouter.tsx +79 -0
- package/src/ui/TabSlot.tsx +170 -0
- package/src/ui/TabTrigger.tsx +282 -0
- package/src/ui/Tabs.tsx +313 -0
- package/src/ui/common.tsx +277 -0
- package/src/ui/index.ts +1 -0
- package/src/ui/useComponent.tsx +42 -0
- package/types/ui/Slot.d.ts +6 -0
- package/types/ui/Slot.d.ts.map +1 -0
- package/types/ui/TabContext.d.ts +190 -0
- package/types/ui/TabContext.d.ts.map +1 -0
- package/types/ui/TabList.d.ts +25 -0
- package/types/ui/TabList.d.ts.map +1 -0
- package/types/ui/TabRouter.d.ts +103 -0
- package/types/ui/TabRouter.d.ts.map +1 -0
- package/types/ui/TabSlot.d.ts +73 -0
- package/types/ui/TabSlot.d.ts.map +1 -0
- package/types/ui/TabTrigger.d.ts +88 -0
- package/types/ui/TabTrigger.d.ts.map +1 -0
- package/types/ui/Tabs.d.ts +255 -0
- package/types/ui/Tabs.d.ts.map +1 -0
- package/types/ui/common.d.ts +40 -0
- package/types/ui/common.d.ts.map +1 -0
- package/types/ui/index.d.ts +2 -0
- package/types/ui/index.d.ts.map +1 -0
- package/types/ui/useComponent.d.ts +10 -0
- package/types/ui/useComponent.d.ts.map +1 -0
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import type { LinkingOptions, ParamListBase, PartialRoute, Route } from '@react-navigation/native'
|
|
2
|
+
|
|
3
|
+
import type { ExpoTabActionType } from './TabRouter'
|
|
4
|
+
import type { UrlObject } from '../router/getNormalizedStatePath'
|
|
5
|
+
import type { RouteNode } from '../router/Route'
|
|
6
|
+
import { resolveHref } from '../link/href'
|
|
7
|
+
import { sortRoutesWithInitial } from '../router/sortRoutes'
|
|
8
|
+
import type { OneRouter } from '../interfaces/router'
|
|
9
|
+
import { Slot } from './Slot'
|
|
10
|
+
|
|
11
|
+
export const ViewSlot = Slot
|
|
12
|
+
|
|
13
|
+
export type ScreenTrigger =
|
|
14
|
+
| {
|
|
15
|
+
type: 'internal'
|
|
16
|
+
href: OneRouter.Href
|
|
17
|
+
name: string
|
|
18
|
+
}
|
|
19
|
+
| {
|
|
20
|
+
type: 'external'
|
|
21
|
+
name: string
|
|
22
|
+
href: string
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
type JumpToNavigationAction = Extract<ExpoTabActionType, { type: 'JUMP_TO' }>
|
|
26
|
+
type TriggerConfig =
|
|
27
|
+
| {
|
|
28
|
+
type: 'internal'
|
|
29
|
+
name: string
|
|
30
|
+
href: string
|
|
31
|
+
routeNode: RouteNode
|
|
32
|
+
action: JumpToNavigationAction
|
|
33
|
+
}
|
|
34
|
+
| { type: 'external'; name: string; href: string }
|
|
35
|
+
|
|
36
|
+
export type TriggerMap = Record<string, TriggerConfig & { index: number }>
|
|
37
|
+
|
|
38
|
+
function resolveHrefWithSegments(
|
|
39
|
+
href: string,
|
|
40
|
+
routeInfo: UrlObject,
|
|
41
|
+
segmentsWithoutGroups: string[]
|
|
42
|
+
): string {
|
|
43
|
+
// For relative paths, resolve them relative to the current directory
|
|
44
|
+
if (href.startsWith('./') || href.startsWith('../')) {
|
|
45
|
+
const basePath = '/' + segmentsWithoutGroups.join('/')
|
|
46
|
+
const baseDir = basePath.replace(/\/[^/]*$/, '') || '/'
|
|
47
|
+
|
|
48
|
+
// Resolve the path
|
|
49
|
+
const parts = (baseDir + '/' + href).split('/')
|
|
50
|
+
const resolved: string[] = []
|
|
51
|
+
|
|
52
|
+
for (const part of parts) {
|
|
53
|
+
if (part === '.' || part === '') continue
|
|
54
|
+
if (part === '..') {
|
|
55
|
+
resolved.pop()
|
|
56
|
+
} else {
|
|
57
|
+
resolved.push(part)
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return '/' + resolved.join('/')
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return href
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export function triggersToScreens(
|
|
68
|
+
triggers: ScreenTrigger[],
|
|
69
|
+
layoutRouteNode: RouteNode,
|
|
70
|
+
linking: LinkingOptions<ParamListBase>,
|
|
71
|
+
initialRouteName: undefined | string,
|
|
72
|
+
parentTriggerMap: TriggerMap,
|
|
73
|
+
routeInfo: UrlObject,
|
|
74
|
+
contextKey: string
|
|
75
|
+
) {
|
|
76
|
+
const configs: TriggerConfig[] = []
|
|
77
|
+
|
|
78
|
+
for (const trigger of triggers) {
|
|
79
|
+
if (trigger.name in parentTriggerMap) {
|
|
80
|
+
const parentTrigger = parentTriggerMap[trigger.name]
|
|
81
|
+
throw new Error(
|
|
82
|
+
`Trigger ${JSON.stringify({
|
|
83
|
+
name: trigger.name,
|
|
84
|
+
href: trigger.href,
|
|
85
|
+
})} has the same name as parent trigger ${JSON.stringify({
|
|
86
|
+
name: parentTrigger.name,
|
|
87
|
+
href: parentTrigger.href,
|
|
88
|
+
})}. Triggers must have unique names.`
|
|
89
|
+
)
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (trigger.type === 'external') {
|
|
93
|
+
configs.push(trigger)
|
|
94
|
+
continue
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
let resolvedHref = resolveHref(trigger.href)
|
|
98
|
+
|
|
99
|
+
if (resolvedHref.startsWith('../')) {
|
|
100
|
+
throw new Error('Trigger href cannot link to a parent directory')
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
const segmentsWithoutGroups = contextKey.split('/').filter((segment) => {
|
|
104
|
+
return !(segment.startsWith('(') && segment.endsWith(')'))
|
|
105
|
+
})
|
|
106
|
+
|
|
107
|
+
resolvedHref = resolveHrefWithSegments(resolvedHref, routeInfo, segmentsWithoutGroups)
|
|
108
|
+
|
|
109
|
+
let state = linking.getStateFromPath?.(resolvedHref, linking.config)?.routes[0]
|
|
110
|
+
|
|
111
|
+
if (!state) {
|
|
112
|
+
// This shouldn't occur, as you should get the global +not-found
|
|
113
|
+
console.warn(
|
|
114
|
+
`Unable to find screen for trigger ${JSON.stringify(trigger)}. Does this point to a valid screen?`
|
|
115
|
+
)
|
|
116
|
+
continue
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
let routeState = state
|
|
120
|
+
|
|
121
|
+
if (routeState.name === '+not-found') {
|
|
122
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
123
|
+
console.warn(
|
|
124
|
+
`Tab trigger '${trigger.name}' has the href '${trigger.href}' which points to a +not-found route.`
|
|
125
|
+
)
|
|
126
|
+
}
|
|
127
|
+
continue
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
const targetStateName = layoutRouteNode.route || '__root'
|
|
131
|
+
|
|
132
|
+
// The state object is the current state from the rootNavigator
|
|
133
|
+
// We need to work out the state for just this trigger
|
|
134
|
+
while (state?.state) {
|
|
135
|
+
if (state.name === targetStateName) break
|
|
136
|
+
state = state.state.routes[state.state.index ?? state.state.routes.length - 1]
|
|
137
|
+
}
|
|
138
|
+
routeState = state.state?.routes[state.state.index ?? state.state.routes.length - 1] || state
|
|
139
|
+
|
|
140
|
+
const routeNode = layoutRouteNode.children.find((child) => child.route === routeState?.name)
|
|
141
|
+
|
|
142
|
+
if (!routeNode) {
|
|
143
|
+
console.warn(
|
|
144
|
+
`Unable to find routeNode for trigger ${JSON.stringify(trigger)}. This might be a bug in One router`
|
|
145
|
+
)
|
|
146
|
+
continue
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
const duplicateTrigger =
|
|
150
|
+
trigger.type === 'internal' &&
|
|
151
|
+
configs.find((config): config is Extract<TriggerConfig, { type: 'internal' }> => {
|
|
152
|
+
if (config.type === 'external') {
|
|
153
|
+
return false
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
return config.routeNode.route === routeNode.route
|
|
157
|
+
})
|
|
158
|
+
|
|
159
|
+
if (duplicateTrigger) {
|
|
160
|
+
const duplicateTriggerText = `${JSON.stringify({ name: duplicateTrigger.name, href: duplicateTrigger.href })} and ${JSON.stringify({ name: trigger.name, href: trigger.href })}`
|
|
161
|
+
|
|
162
|
+
throw new Error(
|
|
163
|
+
`A navigator cannot contain multiple trigger components that map to the same sub-segment. Consider adding a shared group and assigning a group to each trigger. Conflicting triggers:\n\t${duplicateTriggerText}.\nBoth triggers map to route ${routeNode.route}.`
|
|
164
|
+
)
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
configs.push({
|
|
168
|
+
...trigger,
|
|
169
|
+
href: resolvedHref,
|
|
170
|
+
routeNode,
|
|
171
|
+
action: stateToAction(state, layoutRouteNode.route),
|
|
172
|
+
})
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
const sortFn = sortRoutesWithInitial(initialRouteName)
|
|
176
|
+
|
|
177
|
+
const sortedConfigs = configs.sort((a, b) => {
|
|
178
|
+
// External routes should be last. They will eventually be dropped
|
|
179
|
+
if (a.type === 'external' && b.type === 'external') {
|
|
180
|
+
return 0
|
|
181
|
+
} else if (a.type === 'external') {
|
|
182
|
+
return 1
|
|
183
|
+
} else if (b.type === 'external') {
|
|
184
|
+
return -1
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
return sortFn(a.routeNode, b.routeNode)
|
|
188
|
+
})
|
|
189
|
+
|
|
190
|
+
const children: React.JSX.Element[] = []
|
|
191
|
+
const triggerMap: TriggerMap = { ...parentTriggerMap }
|
|
192
|
+
|
|
193
|
+
// Import routeToScreen from One's useScreens
|
|
194
|
+
const { Screen } = require('../router/useScreens')
|
|
195
|
+
const { createGetIdForRoute } = require('../router/useScreens')
|
|
196
|
+
|
|
197
|
+
for (const [index, config] of sortedConfigs.entries()) {
|
|
198
|
+
triggerMap[config.name] = { ...config, index }
|
|
199
|
+
|
|
200
|
+
if (config.type === 'internal') {
|
|
201
|
+
const route = config.routeNode
|
|
202
|
+
children.push(
|
|
203
|
+
<Screen
|
|
204
|
+
getId={createGetIdForRoute(route)}
|
|
205
|
+
name={route.route}
|
|
206
|
+
key={route.route}
|
|
207
|
+
options={(args) => {
|
|
208
|
+
const staticOptions = route.generated ? route.loadRoute()?.getNavOptions : null
|
|
209
|
+
const staticResult =
|
|
210
|
+
typeof staticOptions === 'function' ? staticOptions(args) : staticOptions
|
|
211
|
+
const output = {
|
|
212
|
+
...staticResult,
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
if (route.generated) {
|
|
216
|
+
output.tabBarButton = () => null
|
|
217
|
+
output.drawerItemStyle = { height: 0, display: 'none' }
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
return output
|
|
221
|
+
}}
|
|
222
|
+
getComponent={() => {
|
|
223
|
+
const { getQualifiedRouteComponent } = require('../router/useScreens')
|
|
224
|
+
return getQualifiedRouteComponent(route)
|
|
225
|
+
}}
|
|
226
|
+
/>
|
|
227
|
+
)
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
return {
|
|
231
|
+
children,
|
|
232
|
+
triggerMap,
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
export function stateToAction(
|
|
237
|
+
state: PartialRoute<Route<string, object | undefined>> | undefined,
|
|
238
|
+
startAtRoute?: string
|
|
239
|
+
): JumpToNavigationAction {
|
|
240
|
+
const rootPayload: any = {}
|
|
241
|
+
let payload = rootPayload
|
|
242
|
+
|
|
243
|
+
startAtRoute = startAtRoute === '' ? '__root' : startAtRoute
|
|
244
|
+
|
|
245
|
+
let foundStartingPoint = startAtRoute === undefined || !state?.state
|
|
246
|
+
|
|
247
|
+
while (state) {
|
|
248
|
+
if (foundStartingPoint) {
|
|
249
|
+
if (payload === rootPayload) {
|
|
250
|
+
payload.name = state.name
|
|
251
|
+
} else {
|
|
252
|
+
payload.screen = state.name
|
|
253
|
+
}
|
|
254
|
+
payload.params = state.params ? { ...state.params } : {}
|
|
255
|
+
|
|
256
|
+
state = state.state?.routes[state.state?.routes.length - 1]
|
|
257
|
+
|
|
258
|
+
if (state) {
|
|
259
|
+
payload.params ??= {}
|
|
260
|
+
payload = payload.params
|
|
261
|
+
}
|
|
262
|
+
} else {
|
|
263
|
+
if (state.name === startAtRoute) {
|
|
264
|
+
foundStartingPoint = true
|
|
265
|
+
}
|
|
266
|
+
const nextState = state.state?.routes[state.state?.routes.length - 1]
|
|
267
|
+
if (nextState) {
|
|
268
|
+
state = nextState
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
return {
|
|
274
|
+
type: 'JUMP_TO',
|
|
275
|
+
payload: rootPayload,
|
|
276
|
+
}
|
|
277
|
+
}
|
package/src/ui/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Tabs'
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { useRef, forwardRef, useEffect, type JSX } from 'react'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Copied from @react-navigation/core
|
|
5
|
+
*/
|
|
6
|
+
type Render = (children: React.ReactNode) => JSX.Element
|
|
7
|
+
|
|
8
|
+
type Props = {
|
|
9
|
+
render: Render
|
|
10
|
+
children: React.ReactNode
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const NavigationContent = ({ render, children }: Props) => {
|
|
14
|
+
return render(children)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function useComponent(render: Render) {
|
|
18
|
+
const renderRef = useRef<Render | null>(render)
|
|
19
|
+
|
|
20
|
+
// Normally refs shouldn't be mutated in render
|
|
21
|
+
// But we return a component which will be rendered
|
|
22
|
+
// So it's just for immediate consumption
|
|
23
|
+
renderRef.current = render
|
|
24
|
+
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
renderRef.current = null
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
return useRef(
|
|
30
|
+
forwardRef(({ children }: { children: React.ReactNode }, _ref) => {
|
|
31
|
+
const render = renderRef.current
|
|
32
|
+
|
|
33
|
+
if (render === null) {
|
|
34
|
+
throw new Error(
|
|
35
|
+
'The returned component must be rendered in the same render phase as the hook.'
|
|
36
|
+
)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return <NavigationContent render={render}>{children}</NavigationContent>
|
|
40
|
+
})
|
|
41
|
+
).current
|
|
42
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type ForwardRefExoticComponent, type Component, type RefAttributes } from 'react';
|
|
2
|
+
import { type ViewProps } from 'react-native';
|
|
3
|
+
export interface Slot<Props = ViewProps, Ref = Component<ViewProps>> extends ForwardRefExoticComponent<Props & RefAttributes<Ref>> {
|
|
4
|
+
}
|
|
5
|
+
export declare const Slot: Slot;
|
|
6
|
+
//# sourceMappingURL=Slot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Slot.d.ts","sourceRoot":"","sources":["../../src/ui/Slot.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,yBAAyB,EAC9B,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,OAAO,CAAA;AACd,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAsBzD,MAAM,WAAW,IAAI,CAAC,KAAK,GAAG,SAAS,EAAE,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CACjE,SAAQ,yBAAyB,CAAC,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;CAAG;AAElE,eAAO,MAAM,IAAI,EAAE,IAA8C,CAAA"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import type { BottomTabNavigationOptions } from '@react-navigation/bottom-tabs';
|
|
2
|
+
import type { DefaultNavigatorOptions, NavigationAction, NavigationProp, ParamListBase, TabActionHelpers, TabNavigationState, TabRouterOptions, useNavigationBuilder } from '@react-navigation/native';
|
|
3
|
+
import type { TriggerMap } from './common';
|
|
4
|
+
export type ExpoTabsProps = ExpoTabsNavigatorOptions;
|
|
5
|
+
export type ExpoTabsNavigatorScreenOptions = {
|
|
6
|
+
detachInactiveScreens?: boolean;
|
|
7
|
+
unmountOnBlur?: boolean;
|
|
8
|
+
freezeOnBlur?: boolean;
|
|
9
|
+
lazy?: boolean;
|
|
10
|
+
};
|
|
11
|
+
export type ExpoTabsNavigatorOptions = DefaultNavigatorOptions<ParamListBase, string | undefined, TabNavigationState<ParamListBase>, ExpoTabsScreenOptions, TabNavigationEventMap, ExpoTabsNavigationProp<ParamListBase>> & Omit<TabRouterOptions, 'initialRouteName'> & ExpoTabsNavigatorScreenOptions;
|
|
12
|
+
export type ExpoTabsNavigationProp<ParamList extends ParamListBase, RouteName extends keyof ParamList = keyof ParamList, NavigatorID extends string | undefined = undefined> = NavigationProp<ParamList, RouteName, NavigatorID, TabNavigationState<ParamListBase>, ExpoTabsScreenOptions, TabNavigationEventMap>;
|
|
13
|
+
export type ExpoTabsScreenOptions = Pick<BottomTabNavigationOptions, 'title' | 'lazy' | 'freezeOnBlur'> & {
|
|
14
|
+
params?: object;
|
|
15
|
+
title: string;
|
|
16
|
+
action: NavigationAction;
|
|
17
|
+
};
|
|
18
|
+
export type TabNavigationEventMap = {
|
|
19
|
+
/**
|
|
20
|
+
* Event which fires on tapping on the tab in the tab bar.
|
|
21
|
+
*/
|
|
22
|
+
tabPress: {
|
|
23
|
+
data: undefined;
|
|
24
|
+
canPreventDefault: true;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Event which fires on long press on the tab in the tab bar.
|
|
28
|
+
*/
|
|
29
|
+
tabLongPress: {
|
|
30
|
+
data: undefined;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* The React Navigation custom navigator.
|
|
35
|
+
*
|
|
36
|
+
* @see [`useNavigationBuilder`](https://reactnavigation.org/docs/custom-navigators/#usenavigationbuilder) hook from React Navigation for more information.
|
|
37
|
+
*/
|
|
38
|
+
export type TabsContextValue = ReturnType<typeof useNavigationBuilder<TabNavigationState<any>, TabRouterOptions, TabActionHelpers<ParamListBase>, ExpoTabsNavigatorScreenOptions, TabNavigationEventMap>>;
|
|
39
|
+
export type TabContextValue = TabsDescriptor['options'];
|
|
40
|
+
export declare const TabContext: import("react").Context<ExpoTabsNavigatorScreenOptions>;
|
|
41
|
+
/**
|
|
42
|
+
* @hidden
|
|
43
|
+
*/
|
|
44
|
+
export declare const TabTriggerMapContext: import("react").Context<TriggerMap>;
|
|
45
|
+
/**
|
|
46
|
+
* @hidden
|
|
47
|
+
*/
|
|
48
|
+
export declare const TabsDescriptorsContext: import("react").Context<Record<string, import("@react-navigation/core").Descriptor<ExpoTabsNavigatorScreenOptions, Omit<{
|
|
49
|
+
dispatch(action: Readonly<{
|
|
50
|
+
type: string;
|
|
51
|
+
payload?: object;
|
|
52
|
+
source?: string;
|
|
53
|
+
target?: string;
|
|
54
|
+
}> | ((state: Readonly<TabNavigationState<any>>) => Readonly<{
|
|
55
|
+
type: string;
|
|
56
|
+
payload?: object;
|
|
57
|
+
source?: string;
|
|
58
|
+
target?: string;
|
|
59
|
+
}>)): void;
|
|
60
|
+
navigate<RouteName extends string>(...args: RouteName extends unknown ? [screen: RouteName, params?: object | undefined, options?: {
|
|
61
|
+
merge?: boolean;
|
|
62
|
+
pop?: boolean;
|
|
63
|
+
} | undefined] : never): void;
|
|
64
|
+
navigate<RouteName extends string>(options: RouteName extends unknown ? {
|
|
65
|
+
name: RouteName;
|
|
66
|
+
params: object | undefined;
|
|
67
|
+
path?: string;
|
|
68
|
+
merge?: boolean;
|
|
69
|
+
pop?: boolean;
|
|
70
|
+
} : never): void;
|
|
71
|
+
navigateDeprecated<RouteName extends string>(...args: RouteName extends unknown ? [screen: RouteName, params?: object | undefined] : never): void;
|
|
72
|
+
navigateDeprecated<RouteName extends string>(options: RouteName extends unknown ? {
|
|
73
|
+
name: RouteName;
|
|
74
|
+
params: object | undefined;
|
|
75
|
+
merge?: boolean;
|
|
76
|
+
} : never): void;
|
|
77
|
+
preload<RouteName extends string>(...args: RouteName extends unknown ? [screen: RouteName, params?: object | undefined] : never): void;
|
|
78
|
+
reset(state: TabNavigationState<any> | import("@react-navigation/routers").PartialState<TabNavigationState<any>>): void;
|
|
79
|
+
goBack(): void;
|
|
80
|
+
isFocused(): boolean;
|
|
81
|
+
canGoBack(): boolean;
|
|
82
|
+
getId(): string | undefined;
|
|
83
|
+
getParent<T = import("@react-navigation/core").NavigationHelpers<ParamListBase, {}> | undefined>(id?: string): T;
|
|
84
|
+
getState(): TabNavigationState<any>;
|
|
85
|
+
} & import("@react-navigation/core").PrivateValueStore<[ParamListBase, unknown, unknown]>, "getParent"> & {
|
|
86
|
+
getParent<T = NavigationProp<ParamListBase, string, undefined, Readonly<{
|
|
87
|
+
key: string;
|
|
88
|
+
index: number;
|
|
89
|
+
routeNames: string[];
|
|
90
|
+
history?: unknown[];
|
|
91
|
+
routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
|
|
92
|
+
type: string;
|
|
93
|
+
stale: false;
|
|
94
|
+
}>, {}, {}> | undefined>(id?: string | undefined): T;
|
|
95
|
+
setOptions(options: Partial<ExpoTabsNavigatorScreenOptions>): void;
|
|
96
|
+
} & {
|
|
97
|
+
setParams(params: Partial<object | undefined>): void;
|
|
98
|
+
replaceParams(params: object | undefined): void;
|
|
99
|
+
} & import("@react-navigation/core").EventConsumer<TabNavigationEventMap & import("@react-navigation/core").EventMapCore<TabNavigationState<any>>> & import("@react-navigation/core").PrivateValueStore<[ParamListBase, string, TabNavigationEventMap]> & TabActionHelpers<ParamListBase>, import("@react-navigation/core").RouteProp<ParamListBase, string>>>>;
|
|
100
|
+
/**
|
|
101
|
+
* @hidden
|
|
102
|
+
*/
|
|
103
|
+
export declare const TabsNavigatorContext: import("react").Context<({
|
|
104
|
+
dispatch(action: Readonly<{
|
|
105
|
+
type: string;
|
|
106
|
+
payload?: object;
|
|
107
|
+
source?: string;
|
|
108
|
+
target?: string;
|
|
109
|
+
}> | ((state: Readonly<Readonly<{
|
|
110
|
+
key: string;
|
|
111
|
+
index: number;
|
|
112
|
+
routeNames: string[];
|
|
113
|
+
history?: unknown[];
|
|
114
|
+
routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
|
|
115
|
+
type: string;
|
|
116
|
+
stale: false;
|
|
117
|
+
}>>) => Readonly<{
|
|
118
|
+
type: string;
|
|
119
|
+
payload?: object;
|
|
120
|
+
source? /**
|
|
121
|
+
* Event which fires on long press on the tab in the tab bar.
|
|
122
|
+
*/: string;
|
|
123
|
+
target?: string;
|
|
124
|
+
}>)): void;
|
|
125
|
+
navigate<RouteName extends string>(...args: RouteName extends unknown ? [screen: RouteName, params?: object | undefined, options?: {
|
|
126
|
+
merge?: boolean;
|
|
127
|
+
pop?: boolean;
|
|
128
|
+
} | undefined] : never): void;
|
|
129
|
+
navigate<RouteName extends string>(options: RouteName extends unknown ? {
|
|
130
|
+
name: RouteName;
|
|
131
|
+
params: object | undefined;
|
|
132
|
+
path?: string;
|
|
133
|
+
merge?: boolean;
|
|
134
|
+
pop?: boolean;
|
|
135
|
+
} : never): void;
|
|
136
|
+
navigateDeprecated<RouteName extends string>(...args: RouteName extends unknown ? [screen: RouteName, params
|
|
137
|
+
/**
|
|
138
|
+
* @hidden
|
|
139
|
+
*/
|
|
140
|
+
? /**
|
|
141
|
+
* @hidden
|
|
142
|
+
*/: object | undefined] : never): void;
|
|
143
|
+
navigateDeprecated<RouteName extends string>(options: RouteName extends unknown ? {
|
|
144
|
+
name: RouteName;
|
|
145
|
+
params: object | undefined;
|
|
146
|
+
merge?: boolean;
|
|
147
|
+
} : never): void;
|
|
148
|
+
preload<RouteName extends string>(...args: RouteName extends unknown ? [screen: RouteName, params?: object | undefined] : never): void;
|
|
149
|
+
reset(state: Readonly<{
|
|
150
|
+
key: string;
|
|
151
|
+
index: number;
|
|
152
|
+
routeNames: string[];
|
|
153
|
+
history?: unknown[];
|
|
154
|
+
routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
|
|
155
|
+
type: string;
|
|
156
|
+
stale: false;
|
|
157
|
+
}> | import("@react-navigation/routers").PartialState<Readonly<{
|
|
158
|
+
key: string;
|
|
159
|
+
index: number;
|
|
160
|
+
routeNames: string[];
|
|
161
|
+
history?: unknown[];
|
|
162
|
+
routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
|
|
163
|
+
type: string;
|
|
164
|
+
stale: false;
|
|
165
|
+
}>>): void;
|
|
166
|
+
goBack(): void;
|
|
167
|
+
isFocused(): boolean;
|
|
168
|
+
canGoBack(): boolean;
|
|
169
|
+
getId(): string | undefined;
|
|
170
|
+
getParent<T = import("@react-navigation/core").NavigationHelpers<ParamListBase, {}> | undefined>(id?: string): T;
|
|
171
|
+
getState(): Readonly<{
|
|
172
|
+
key: string;
|
|
173
|
+
index: number;
|
|
174
|
+
routeNames: string[];
|
|
175
|
+
history?: unknown[];
|
|
176
|
+
routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
|
|
177
|
+
type: string;
|
|
178
|
+
stale: false;
|
|
179
|
+
}>;
|
|
180
|
+
} & import("@react-navigation/core").PrivateValueStore<[ParamListBase, unknown, unknown]> & import("@react-navigation/core").EventEmitter<TabNavigationEventMap> & {
|
|
181
|
+
setParams(params: Partial<object | undefined>): void;
|
|
182
|
+
replaceParams(params: object | undefined): void;
|
|
183
|
+
} & TabActionHelpers<ParamListBase>) | null>;
|
|
184
|
+
/**
|
|
185
|
+
* @hidden
|
|
186
|
+
*/
|
|
187
|
+
export declare const TabsStateContext: import("react").Context<TabNavigationState<any>>;
|
|
188
|
+
export type Route = TabNavigationState<ParamListBase>['routes'][number];
|
|
189
|
+
export type TabsDescriptor = TabsContextValue['descriptors'][number];
|
|
190
|
+
//# sourceMappingURL=TabContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabContext.d.ts","sourceRoot":"","sources":["../../src/ui/TabContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ReactElement, ComponentProps } from 'react';
|
|
2
|
+
import { type ViewProps } from 'react-native';
|
|
3
|
+
export type TabListProps = ViewProps & {
|
|
4
|
+
/** Forward props to child component and removes the extra `<View>`. Useful for custom wrappers. */
|
|
5
|
+
asChild?: boolean;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Wrapper component for `TabTriggers`. `TabTriggers` within the `TabList` define the tabs.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* <Tabs>
|
|
13
|
+
* <TabSlot />
|
|
14
|
+
* <TabList>
|
|
15
|
+
* <TabTrigger name="home" href="/" />
|
|
16
|
+
* </TabList>
|
|
17
|
+
* </Tabs>
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare function TabList({ asChild, style, ...props }: TabListProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
/**
|
|
22
|
+
* @hidden
|
|
23
|
+
*/
|
|
24
|
+
export declare function isTabList(child: ReactElement<any>): child is ReactElement<ComponentProps<typeof TabList>>;
|
|
25
|
+
//# sourceMappingURL=TabList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabList.d.ts","sourceRoot":"","sources":["../../src/ui/TabList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AACzD,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAI/D,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG;IACrC,mGAAmG;IACnG,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,2CAGjE;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,GACvB,KAAK,IAAI,YAAY,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,CAAC,CAEvD"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { type CommonNavigationAction, type ParamListBase, type Router, type TabActionType as RNTabActionType, type TabNavigationState, type TabRouterOptions as RNTabRouterOptions } from '@react-navigation/native';
|
|
2
|
+
import type { TriggerMap } from './common';
|
|
3
|
+
export type ExpoTabRouterOptions = RNTabRouterOptions & {
|
|
4
|
+
triggerMap: TriggerMap;
|
|
5
|
+
};
|
|
6
|
+
export type ExpoTabActionType = RNTabActionType | CommonNavigationAction | {
|
|
7
|
+
type: 'JUMP_TO';
|
|
8
|
+
source?: string;
|
|
9
|
+
target?: string;
|
|
10
|
+
payload: {
|
|
11
|
+
name: string;
|
|
12
|
+
resetOnFocus?: boolean;
|
|
13
|
+
params?: object;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export declare function ExpoTabRouter(options: ExpoTabRouterOptions): Router<TabNavigationState<ParamListBase>, {
|
|
17
|
+
type: "GO_BACK";
|
|
18
|
+
source?: string;
|
|
19
|
+
target?: string;
|
|
20
|
+
} | {
|
|
21
|
+
type: "NAVIGATE";
|
|
22
|
+
payload: {
|
|
23
|
+
name: string;
|
|
24
|
+
params?: object;
|
|
25
|
+
path?: string;
|
|
26
|
+
merge?: boolean;
|
|
27
|
+
pop?: boolean;
|
|
28
|
+
};
|
|
29
|
+
source?: string;
|
|
30
|
+
target?: string;
|
|
31
|
+
} | {
|
|
32
|
+
type: "NAVIGATE_DEPRECATED";
|
|
33
|
+
payload: {
|
|
34
|
+
name: string;
|
|
35
|
+
params?: object;
|
|
36
|
+
merge?: boolean;
|
|
37
|
+
};
|
|
38
|
+
source?: string;
|
|
39
|
+
target?: string;
|
|
40
|
+
} | {
|
|
41
|
+
type: "RESET";
|
|
42
|
+
payload: (Readonly<{
|
|
43
|
+
key: string;
|
|
44
|
+
index: number;
|
|
45
|
+
routeNames: string[];
|
|
46
|
+
history?: unknown[];
|
|
47
|
+
routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
|
|
48
|
+
type: string;
|
|
49
|
+
stale: false;
|
|
50
|
+
}> | import("@react-navigation/routers").PartialState<Readonly<{
|
|
51
|
+
key: string;
|
|
52
|
+
index: number;
|
|
53
|
+
routeNames: string[];
|
|
54
|
+
history?: unknown[];
|
|
55
|
+
routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
|
|
56
|
+
type: string;
|
|
57
|
+
stale: false;
|
|
58
|
+
}>> | (Omit<Readonly<{
|
|
59
|
+
key: string;
|
|
60
|
+
index: number;
|
|
61
|
+
routeNames: string[];
|
|
62
|
+
history?: unknown[];
|
|
63
|
+
routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
|
|
64
|
+
type: string;
|
|
65
|
+
stale: false;
|
|
66
|
+
}>, "routes"> & {
|
|
67
|
+
routes: Omit<import("@react-navigation/routers").Route<string>, "key">[];
|
|
68
|
+
})) | undefined;
|
|
69
|
+
source?: string;
|
|
70
|
+
target?: string;
|
|
71
|
+
} | {
|
|
72
|
+
type: "SET_PARAMS";
|
|
73
|
+
payload: {
|
|
74
|
+
params?: object;
|
|
75
|
+
};
|
|
76
|
+
source?: string;
|
|
77
|
+
target?: string;
|
|
78
|
+
} | {
|
|
79
|
+
type: "REPLACE_PARAMS";
|
|
80
|
+
payload: {
|
|
81
|
+
params?: object;
|
|
82
|
+
};
|
|
83
|
+
source?: string;
|
|
84
|
+
target?: string;
|
|
85
|
+
} | {
|
|
86
|
+
type: "PRELOAD";
|
|
87
|
+
payload: {
|
|
88
|
+
name: string;
|
|
89
|
+
params?: object;
|
|
90
|
+
};
|
|
91
|
+
source?: string;
|
|
92
|
+
target?: string;
|
|
93
|
+
} | RNTabActionType | {
|
|
94
|
+
type: "JUMP_TO";
|
|
95
|
+
source?: string;
|
|
96
|
+
target?: string;
|
|
97
|
+
payload: {
|
|
98
|
+
name: string;
|
|
99
|
+
resetOnFocus?: boolean;
|
|
100
|
+
params?: object;
|
|
101
|
+
};
|
|
102
|
+
}>;
|
|
103
|
+
//# sourceMappingURL=TabRouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabRouter.d.ts","sourceRoot":"","sources":["../../src/ui/TabRouter.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAElB,KAAK,MAAM,EACX,KAAK,aAAa,IAAI,eAAe,EACrC,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,IAAI,kBAAkB,EAC5C,MAAM,0BAA0B,CAAA;AAEjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAE1C,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,GAAG;IACtD,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,sBAAsB,GACtB;IACE,IAAI,EAAE,SAAS,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAA;QACZ,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAEL,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB;;;;;;;;cAdvC,CAAC;YACV,CAAC;aACG,CAAC;WAEV,CAAA;;;;;;;;cAUO,CAAC;aAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAS7B,CAAA;;;;;;;cAI+B,CAAC;;;;;;;;cAIjC,CAAL;;;;;UA3BS,SAAS;aACN,MAAM;aACN,MAAM;aACN;QACP,IAAI,EAAE,MAAM,CAAA;QACZ,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB;GAmDN"}
|