diff --git a/examples/web/react/components/keyboard-gb/keyboard-gb.tsx b/examples/web/react/components/keyboard-gb/keyboard-gb.tsx
index 32715fd7f13da89c1af2cfd4d7025f180acdc686..1cd2a2b1cb847dc75020b4c06d4e1e82a7f3800e 100644
--- a/examples/web/react/components/keyboard-gb/keyboard-gb.tsx
+++ b/examples/web/react/components/keyboard-gb/keyboard-gb.tsx
@@ -79,11 +79,35 @@ export const KeyboardGB: FC<KeyboardGBProps> = ({
                 return;
             }
         };
+        const onGamepadConnected = (event: GamepadEvent) => {
+            const gamepad = event.gamepad;
+            
+            console.log(
+                "Gamepad connected at index %d: %s. %d buttons, %d axes.",
+                event.gamepad.index,
+                event.gamepad.id,
+                event.gamepad.buttons.length,
+                event.gamepad.axes.length
+            );
+
+            const updateStatus = () => {
+                event.gamepad.buttons.forEach((button, index) => {
+                    if (button.pressed) {
+                        console.info(`${index} => ${button.pressed}`);
+                    }
+                });
+                requestAnimationFrame(updateStatus);
+            };
+
+            requestAnimationFrame(updateStatus);
+        };
         document.addEventListener("keydown", _onKeyDown);
         document.addEventListener("keyup", _onKeyUp);
+        window.addEventListener("gamepadconnected", onGamepadConnected);
         return () => {
             document.removeEventListener("keydown", _onKeyDown);
             document.removeEventListener("keyup", _onKeyUp);
+            window.removeEventListener("gamepadconnected", onGamepadConnected);
         };
     }, []);
     const renderKey = (