Skip to content

Commit 2205741

Browse files
authored
Merge pull request #22 from onmyway133/ios_collapse_id
Adding ability to set apns-collapse-id to iOS notifications
2 parents 451b394 + f408aad commit 2205741

File tree

4 files changed

+593
-596
lines changed

4 files changed

+593
-596
lines changed

components/InputComponent.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,13 +142,19 @@ class InputComponent extends React.Component {
142142
const notification = new APN.Notification()
143143
notification.expiry = Math.floor(Date.now() / 1000) + 3600
144144

145+
const collapseId = input.collapseId
146+
if (collapseId && collapseId !== '') {
147+
notification.collapseId = collapseId
148+
}
149+
145150
try {
146151
notification.rawPayload = JSON.parse(input.message)
147152
} catch(e) {
148153
this.props.updateOutput({
149154
loading: false,
150155
text: 'Failed: ' + e
151156
})
157+
return
152158
}
153159

154160
notification.topic = input.bundleId

components/iOSComponent.js

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ class iOSComponent extends React.Component {
4545
bundleId: '',
4646
environment: 'sandbox',
4747
deviceToken: '',
48+
collapseId: '',
4849
message: JSON.stringify(defaultMessage)
4950
}
5051
}
@@ -133,7 +134,7 @@ class iOSComponent extends React.Component {
133134

134135
makeAuthenticationElement() {
135136
const tabsOptions = {
136-
value: this.state.authentication.value,
137+
value: this.state.authentication,
137138
onChange: this.handleAuthenticationChange
138139
}
139140

@@ -270,6 +271,7 @@ class iOSComponent extends React.Component {
270271
React.createElement('legend', {}, 'Body'),
271272
this.makeBundleIdElement(),
272273
this.makeDeviceTokenElement(),
274+
this.makeCollapseIdElement(),
273275
this.makeMessageElement()
274276
)
275277
)
@@ -313,6 +315,25 @@ class iOSComponent extends React.Component {
313315
)
314316
}
315317

318+
makeCollapseIdElement() {
319+
const textFieldOptions = {
320+
style: {
321+
width: '100%'
322+
},
323+
hintText: 'Enter collapse id (optional)',
324+
value: this.state.collapseId,
325+
onChange: (event, value) => {
326+
this.setState({
327+
collapseId: value
328+
})
329+
}
330+
}
331+
332+
return React.createElement('div', {},
333+
React.createElement(TextField, textFieldOptions)
334+
)
335+
}
336+
316337
makeMessageElement() {
317338
const textFieldOptions = {
318339
style: {

0 commit comments

Comments
 (0)