Skip to content

Commit db22be5

Browse files
committed
refactor(examples): simplify no-location demo UI
1 parent 5e4d0a6 commit db22be5

2 files changed

Lines changed: 32 additions & 43 deletions

File tree

examples/demo-no-location/src/App.tsx

Lines changed: 15 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ const isPlaceholder = (value: string): boolean => value.toLowerCase().startsWith
88
export default function App() {
99
const [permission, setPermission] = useState<boolean | null>(null);
1010
const [pushSubscriptionId, setPushSubscriptionId] = useState<string | null>(null);
11-
const [locationShared, setLocationShared] = useState<boolean | null>(null);
12-
const [status, setStatus] = useState('Ready');
11+
const [permissionStatus, setPermissionStatus] = useState<string | null>(null);
1312

1413
const refreshPushState = useCallback(() => {
1514
void OneSignal.Notifications.hasPermission()
@@ -29,27 +28,24 @@ export default function App() {
2928
}, [refreshPushState]);
3029

3130
const requestPermission = useCallback(async () => {
32-
setStatus('Requesting notification permission...');
31+
setPermissionStatus('Requesting notification permission...');
3332
try {
3433
const granted = await OneSignal.Notifications.requestPermission(false);
3534
setPermission(granted);
3635
refreshPushState();
37-
setStatus(
36+
setPermissionStatus(
3837
granted ? 'Notification permission granted.' : 'Notification permission not granted.',
3938
);
4039
} catch (error) {
41-
setStatus(`Permission request failed: ${String(error)}`);
40+
setPermissionStatus(`Permission request failed: ${String(error)}`);
4241
}
4342
}, [refreshPushState]);
4443

45-
const checkLocationBridge = useCallback(async () => {
46-
setStatus('Checking location bridge...');
44+
const testLocationPermissionRequest = useCallback(async () => {
4745
try {
48-
const shared = await OneSignal.Location.isShared();
49-
setLocationShared(shared);
50-
setStatus(`Location bridge resolved safely: shared=${String(shared)}.`);
46+
await OneSignal.Location.requestPermission();
5147
} catch (error) {
52-
setStatus(`Location bridge rejected: ${String(error)}`);
48+
console.error('OneSignal.Location.requestPermission failed:', error);
5349
}
5450
}, []);
5551

@@ -66,8 +62,8 @@ export default function App() {
6662
<section className="card">
6763
<h2>Configuration</h2>
6864
<p>
69-
Builds with <code>ONESIGNAL_DISABLE_LOCATION=true</code> and avoids{' '}
70-
<code>OneSignal.Location</code> in normal app flow.
65+
This demo initializes OneSignal and requests notification permission only when you tap
66+
the button below. Native build flags exclude the location module.
7167
</p>
7268
<dl>
7369
<div>
@@ -96,28 +92,20 @@ export default function App() {
9692
</div>
9793
</dl>
9894
<button type="button" onClick={requestPermission}>
99-
Request Notification Permission
95+
REQUEST PERMISSION
10096
</button>
97+
{permissionStatus && <p className="result">{permissionStatus}</p>}
10198
</section>
10299

103100
<section className="card">
104101
<h2>Location Bridge</h2>
105102
<p>
106-
This optional check calls <code>OneSignal.Location.isShared()</code>. In a no-location
107-
Android build it should resolve <code>false</code>; iOS should also remain safe when the
108-
location product is omitted.
103+
The location test call may not log a JavaScript error; check Android Logcat or Xcode
104+
logs for native diagnostics.
109105
</p>
110-
<button type="button" className="secondary" onClick={checkLocationBridge}>
111-
Check Location Bridge
106+
<button type="button" className="secondary" onClick={testLocationPermissionRequest}>
107+
TEST LOCATION REQUEST
112108
</button>
113-
<p className="result">
114-
Last location value: {locationShared == null ? 'Not checked' : String(locationShared)}
115-
</p>
116-
</section>
117-
118-
<section className="card">
119-
<h2>Status</h2>
120-
<p>{status}</p>
121109
</section>
122110
</div>
123111
</main>

examples/demo-no-location/src/styles.css

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
}
1717

1818
body {
19+
font-size: 14px;
1920
margin: 0;
2021
}
2122

@@ -32,9 +33,9 @@ button {
3233
border-radius: 8px;
3334
color: #ffffff;
3435
cursor: pointer;
35-
font-size: 0.95rem;
36+
font-size: 0.85rem;
3637
font-weight: 700;
37-
padding: 12px 16px;
38+
padding: 9px 12px;
3839
}
3940

4041
button.secondary {
@@ -58,53 +59,53 @@ button.secondary {
5859
.appbar-content {
5960
margin: 0 auto;
6061
max-width: 720px;
61-
padding: 14px 16px;
62+
padding: 10px 12px;
6263
}
6364

6465
.appbar h1 {
6566
color: #ffffff;
66-
font-size: 22px;
67+
font-size: 19px;
6768
font-weight: 700;
6869
margin: 0;
6970
}
7071

7172
.appbar p {
7273
color: #ffffff;
73-
font-size: 14px;
74+
font-size: 12px;
7475
margin: 2px 0 0;
7576
}
7677

7778
.content {
7879
margin: 0 auto;
7980
max-width: 720px;
80-
padding: 16px 16px 24px;
81+
padding: 10px 12px 16px;
8182
}
8283

8384
.card {
8485
background: #ffffff;
8586
border: 1px solid rgba(0, 0, 0, 0.08);
86-
border-radius: 14px;
87+
border-radius: 12px;
8788
box-shadow: 0 8px 30px rgba(0, 0, 0, 0.04);
88-
margin-bottom: 16px;
89-
padding: 20px;
89+
margin-bottom: 10px;
90+
padding: 12px;
9091
}
9192

9293
.card h2 {
93-
font-size: 1rem;
94-
margin: 0 0 14px;
94+
font-size: 0.85rem;
95+
margin: 0 0 8px;
9596
text-transform: uppercase;
9697
}
9798

9899
dl {
99-
margin: 0 0 16px;
100+
margin: 0 0 10px;
100101
}
101102

102103
dl div {
103104
border-bottom: 1px solid #eceff1;
104105
display: grid;
105-
gap: 12px;
106-
grid-template-columns: 130px minmax(0, 1fr);
107-
padding: 10px 0;
106+
gap: 8px;
107+
grid-template-columns: 108px minmax(0, 1fr);
108+
padding: 6px 0;
108109
}
109110

110111
dl div:last-child {
@@ -127,5 +128,5 @@ dd {
127128

128129
.result {
129130
color: #6b7280;
130-
font-size: 0.9rem;
131+
font-size: 0.85rem;
131132
}

0 commit comments

Comments
 (0)