Types
References¶
Visit¶
Re-exports Visit
VisitProps¶
Re-exports VisitProps
Remote¶
Re-exports Remote
RemoteProps¶
Re-exports RemoteProps
BeforeSave¶
Re-exports BeforeSave
Interfaces¶
GraftingSuccessAction¶
Extends¶
Action
Properties¶
Property | Type | Overrides | Defined in |
---|---|---|---|
type |
string |
Action.type |
lib/types/actions.ts:12 |
payload |
{pageKey : string ;keyPath : string ; } |
- | lib/types/actions.ts:13 |
payload.pageKey |
string |
- | lib/types/actions.ts:14 |
payload.keyPath |
string |
- | lib/types/actions.ts:15 |
GraftingErrorAction¶
Extends¶
Action
Properties¶
Property | Type | Overrides | Defined in |
---|---|---|---|
type |
string |
Action.type |
lib/types/actions.ts:20 |
payload |
{pageKey : string ;url : string ;err : unknown ;keyPath : string ; } |
- | lib/types/actions.ts:21 |
payload.pageKey |
string |
- | lib/types/actions.ts:22 |
payload.url |
string |
- | lib/types/actions.ts:23 |
payload.err |
unknown |
- | lib/types/actions.ts:24 |
payload.keyPath |
string |
- | lib/types/actions.ts:25 |
ParsedResponse¶
Properties¶
Property | Type | Defined in |
---|---|---|
rsp |
Response |
lib/types/index.ts:102 |
json |
PageResponse |
lib/types/index.ts:103 |
Defer¶
Defer is a node in the page response thats been intentionally filled with empty or placeholder data for the purposes of fetching it later.
You would typically use it with props_template for parts of a page that you know would be slower to load.
Properties¶
Property | Type | Description | Defined in |
---|---|---|---|
url |
string |
A url with props_at keypath in the query parameter to indicate how to dig for the data, and where to place the data. | lib/types/index.ts:128 |
type |
"auto" | "manual" |
When set to auto Superglue will automatically make the request using the url . When set to manual , Superglue does nothing, and you would need to manually use remote with the url to fetch the missing data. |
lib/types/index.ts:129 |
path |
string |
A keypath indicates how to dig for the data and where to place the data. | lib/types/index.ts:130 |
successAction |
string |
a user defined action for Superglue to dispatch when auto deferement is successful | lib/types/index.ts:131 |
failAction |
string |
a user defined action for Superglue to dispatch when auto deferement failed | lib/types/index.ts:132 |
GraftResponse¶
The GraftResponse is a protocol, a shape that is responsible for partial updates using props_template's digging functionality in Superglue. Its meant to be implemented by the server and if you are using superglue_rails, the generators would have generated a props_template layout and view that would shape the graft responses for you.
Properties¶
Property | Type | Description | Defined in |
---|---|---|---|
data |
JSONMappable |
- | lib/types/index.ts:142 |
componentIdentifier |
string |
- | lib/types/index.ts:143 |
assets |
string [] |
- | lib/types/index.ts:144 |
csrfToken? |
string |
- | lib/types/index.ts:145 |
fragments |
Fragment [] |
- | lib/types/index.ts:146 |
defers |
Defer [] |
- | lib/types/index.ts:147 |
slices |
JSONObject |
- | lib/types/index.ts:148 |
renderedAt |
number |
- | lib/types/index.ts:150 |
restoreStrategy |
RestoreStrategy |
- | lib/types/index.ts:151 |
action |
"graft" |
- | lib/types/index.ts:174 |
path |
string |
Used by superglue to replace the data at that location. | lib/types/index.ts:175 |
Fragment¶
A Fragment identifies a cross cutting concern, like a shared header or footer.
Properties¶
Property | Type | Description | Defined in |
---|---|---|---|
type |
string |
A user supplied string identifying a fragment. This is usually created using props_template | lib/types/index.ts:193 |
path |
string |
A Keypath specifying the location of the fragment | lib/types/index.ts:194 |
SuperglueState¶
A read only state that contains meta information about the current page.
Properties¶
Property | Type | Description | Defined in |
---|---|---|---|
currentPageKey |
string |
The PageKey of the current page. This can be pass to Remote. | lib/types/index.ts:209 |
pathname |
string |
The pathname of the current url. | lib/types/index.ts:211 |
search |
string |
The query string of the current url. | lib/types/index.ts:213 |
hash |
string |
The hash of the current url. | lib/types/index.ts:215 |
csrfToken |
string |
The Rails csrfToken that you can use for forms. | lib/types/index.ts:217 |
assets |
string [] |
The tracked asset digests. | lib/types/index.ts:219 |
RootState¶
The root state for a Superglue application. It occupies 2 keys in your app.
Properties¶
Property | Type | Description | Defined in |
---|---|---|---|
superglue |
SuperglueState |
Caontain readonly metadata about the current page | lib/types/index.ts:228 |
pages |
AllPages |
Every PageResponse that superglue recieves is stored here. | lib/types/index.ts:230 |
PageOwnProps¶
Helpful props passed to the page component.
Properties¶
Property | Type | Description | Defined in |
---|---|---|---|
pageKey |
string |
the pagekey of the current page | lib/types/index.ts:238 |
navigateTo |
(path : string , options : {action : SuggestedAction ;ownProps : Record \<string , unknown >; }) => boolean |
- | lib/types/index.ts:239 |
visit |
Visit |
- | lib/types/index.ts:240 |
remote |
Remote |
- | lib/types/index.ts:241 |
Meta¶
Meta is passed to the Promise when visit or remote resolves and contains additional information for navigation.
Properties¶
Property | Type | Description | Defined in |
---|---|---|---|
pageKey |
string |
The URL of the response converted to a pageKey. Superglue uses this to persist the VisitResponse to store, when that happens. | lib/types/index.ts:265 |
page |
VisitResponse |
The VisitResponse of the page | lib/types/index.ts:267 |
redirected |
boolean |
Indicates if response was redirected | lib/types/index.ts:269 |
rsp |
Response |
The original response object | lib/types/index.ts:271 |
fetchArgs |
FetchArgs |
The original args passed to fetch. | lib/types/index.ts:273 |
componentIdentifier |
string |
The ComponentIdentifier extracted from the response. | lib/types/index.ts:275 |
needsRefresh |
boolean |
true when assets locally are detected to be out of date |
lib/types/index.ts:277 |
suggestedAction? |
SuggestedAction |
The SuggestedAction. This can be used for navigation. | lib/types/index.ts:279 |
Handlers¶
Properties¶
Property | Type | Defined in |
---|---|---|
onClick |
(event : MouseEvent ) => void |
lib/types/index.ts:323 |
onSubmit |
(event : Event ) => void |
lib/types/index.ts:324 |
HistoryState¶
The state that is saved to history.state. Superglue stores information about the current page so that it can restore the page state when navigating back
Properties¶
Property | Type | Description | Defined in |
---|---|---|---|
superglue |
true |
Is always true so superglue can differentiate pages that have superglue enabled or not |
lib/types/index.ts:344 |
pageKey |
string |
The page key in SuperglueState to restore from | lib/types/index.ts:346 |
posX |
number |
The scroll position X of the page | lib/types/index.ts:348 |
posY |
number |
The scroll position Y of the page | lib/types/index.ts:350 |
BasicRequestInit¶
A variation of RequestInit except the headers must be a regular object
Extends¶
RequestInit
Properties¶
Property | Type | Description | Overrides | Defined in |
---|---|---|---|---|
headers? |
{} | A Headers object, an object literal, or an array of two-item arrays to set request's headers. | RequestInit.headers |
lib/types/index.ts:371 |
Type Aliases¶
FetchArgs¶
FetchArgs: [
string
,BasicRequestInit
]
Tuple of Fetch arguments that Superglue passes to Fetch.
Defined in¶
PageKey¶
PageKey:
string
A PageKey is a combination of a parsed URL's pathname + query string. No hash.
*
Example¶
Defined in¶
RestoreStrategy¶
RestoreStrategy:
"fromCacheOnly"
|"revisitOnly"
|"fromCacheAndRevisitInBackground"
Defines the behavior when navigating to a page that is already stored on the client. For example, when navigating back.
When the page already exists in the store:
- fromCacheOnly
- Use the cached page that exists on the store, only.
- revisitOnly
- Ignore the cache and make a request for the latest page.
- fromCacheAndRevisitInBackground
- Use the cache version of the page so
superglue can optimistically navigate to it, then make an additional request
for the latest version.
Defined in¶
SuggestedAction¶
SuggestedAction:
"push"
|"replace"
|"none"
A SuggestedAction is used to tell Superglue to history.push, history.replace or do nothing.
Defined in¶
NavigationAction¶
NavigationAction:
SuggestedAction
Defined in¶
ComponentIdentifier¶
ComponentIdentifier:
string
An identifier that Superglue will uses to determine which page component to render with your page response.
Defined in¶
Keypath¶
Keypath:
string
A keypath is a string representing the location of a piece of data. Superglue uses the keypath to dig for or update data.
Examples¶
Object access
Array access
Array with lookahead
Defined in¶
JSONPrimitive¶
JSONPrimitive:
string
|number
|boolean
|null
|undefined
A JSON Primitive value
Defined in¶
JSONObject¶
JSONObject: {}
A JSON Object
Index Signature¶
[key
: string
]: JSONValue
Defined in¶
JSONMappable¶
JSONMappable:
JSONValue
[] |JSONObject
A JSON Object or an array of values
Defined in¶
JSONKeyable¶
JSONKeyable:
JSONObject
[] |JSONObject
A array of JSON key value objects or a JSON Object
Defined in¶
JSONValue¶
JSONValue:
JSONPrimitive
|JSONMappable
A primitive or a mappable object
Defined in¶
VisitResponse¶
VisitResponse: {
data
:JSONMappable
;componentIdentifier
:ComponentIdentifier
;assets
:string
[];csrfToken
:string
;fragments
:Fragment
[];defers
:Defer
[];slices
:JSONObject
;renderedAt
:number
;restoreStrategy
:RestoreStrategy
; }
The VisitResponse is a protocol, a shape that is responsible for full page visits in Superglue. Its meant to be implemented by the server and if you are using superglue_rails, the generators would have generated a props_template layout and view that would shape the visit responses for you.
Type declaration¶
Name | Type | Defined in |
---|---|---|
data |
JSONMappable |
lib/types/index.ts:142 |
componentIdentifier |
ComponentIdentifier |
lib/types/index.ts:143 |
assets |
string [] |
lib/types/index.ts:144 |
csrfToken ? |
string |
lib/types/index.ts:145 |
fragments |
Fragment [] |
lib/types/index.ts:146 |
defers |
Defer [] |
lib/types/index.ts:147 |
slices |
JSONObject |
lib/types/index.ts:148 |
renderedAt |
number |
lib/types/index.ts:150 |
restoreStrategy |
RestoreStrategy |
lib/types/index.ts:151 |
Defined in¶
Page¶
Page:
VisitResponse
& {savedAt
:number
;pageKey
:PageKey
; }
A Page is a VisitResponse that's been saved to the store
Type declaration¶
Name | Type | Defined in |
---|---|---|
savedAt |
number |
lib/types/index.ts:158 |
pageKey |
PageKey |
lib/types/index.ts:159 |
Defined in¶
PageResponse¶
PageResponse:
GraftResponse
|VisitResponse
A PageResponse can be either a GraftResponse or a VisitResponse. Its meant to be implemented by the server and if you are using superglue_rails, the generators will handle both cases.
Defined in¶
AllPages¶
The store where all page responses are stored indexed by PageKey. You are encouraged to mutate the Pages in this store.
Defined in¶
Content¶
Content:
PageOwnProps
& {[key: string]
:unknown
;pageKey
:PageKey
;fragments
:Fragment
[];csrfToken
:string
; }
Your Page's content in the data node in VisitResponse merged with additional helpers
Type declaration¶
Name | Type | Defined in |
---|---|---|
pageKey |
PageKey |
lib/types/index.ts:249 |
fragments |
Fragment [] |
lib/types/index.ts:250 |
csrfToken ? |
string |
lib/types/index.ts:251 |
Defined in¶
VisitCreator()¶
VisitCreator: (
input
:string
|PageKey
,options
:VisitProps
) =>MetaThunk
VisitCreator is a Redux action creator that returns a thunk. Use this to build
the Visit function. Typically its already generated in application_visit.js
Parameters¶
Parameter | Type |
---|---|
input |
string | PageKey |
options |
VisitProps |
Returns¶
Defined in¶
RemoteCreator()¶
RemoteCreator: (
input
:string
|PageKey
,options
:RemoteProps
) =>MetaThunk
RemoteCreator is a Redux action creator that returns a thunk. Use this to build
the Remote function. Typically its already generated in application_visit.js
Parameters¶
Parameter | Type |
---|---|
input |
string | PageKey |
options |
RemoteProps |
Returns¶
Defined in¶
Dispatch¶
Dispatch:
ThunkDispatch
\<RootState
,undefined
,Action
>
Defined in¶
SuperglueStore¶
SuperglueStore:
EnhancedStore
\<RootState
,Action
,Tuple
\<[StoreEnhancer
\<{dispatch
:Dispatch
; }>,StoreEnhancer
]>>
A Store created with Redux Toolkit's configureStore
setup with reducers
from Superglue. If you are using superglue_rails this would have been
generated for you in store.js
and setup correctly in application.js
Defined in¶
UJSHandlers()¶
UJSHandlers: (
{ ujsAttributePrefix, visit, remote, }
: {ujsAttributePrefix
:string
;visit
:Visit
;remote
:Remote
; }) =>Handlers
Parameters¶
Parameter | Type |
---|---|
{ ujsAttributePrefix, visit, remote, } |
object |
{ ujsAttributePrefix, visit, remote, }.ujsAttributePrefix |
string |
{ ujsAttributePrefix, visit, remote, }.visit |
Visit |
{ ujsAttributePrefix, visit, remote, }.remote |
Remote |
Returns¶
Defined in¶
SaveAndProcessPageThunk¶
SaveAndProcessPageThunk:
ThunkAction
\<Promise
\<void
>,RootState
,undefined
,Action
>
Defined in¶
MetaThunk¶
MetaThunk:
ThunkAction
\<Promise
\<Meta
>,RootState
,undefined
,Action
>
Defined in¶
DefermentThunk¶
DefermentThunk:
ThunkAction
\<Promise
\<void
[]>,RootState
,undefined
,Action
>