Skip to content

Commit ff6b07d

Browse files
committed
Test coinbase apple pay
1 parent ca360d4 commit ff6b07d

File tree

4 files changed

+62
-35
lines changed

4 files changed

+62
-35
lines changed

examples/next/src/app/page.tsx

Lines changed: 56 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,64 @@
11
"use client";
22

3-
import { FC } from "react";
4-
5-
import { ColorModeToggle } from "components/ColorModeToggle";
6-
import Header from "components/Header";
7-
import { DelegateAccount } from "components/DelegateAccount";
8-
import { InvalidTxn } from "components/InvalidTxn";
9-
import { LookupControllers } from "components/LookupControllers";
10-
import { ManualTransferEth } from "components/ManualTransferEth";
11-
import { PlayButton } from "components/PlayButton";
12-
import { Profile } from "components/Profile";
13-
import { SignMessage } from "components/SignMessage";
14-
import { Transfer } from "components/Transfer";
15-
import { Starterpack } from "components/Starterpack";
3+
import { FC, useEffect, useMemo, useState } from "react";
4+
import { useAccount, useConnect, useDisconnect } from "@starknet-react/core";
5+
import ControllerConnector from "@cartridge/connector/controller";
6+
import { Button } from "@cartridge/ui";
167

178
const Home: FC = () => {
9+
const { status } = useAccount();
10+
const { connect, connectors } = useConnect();
11+
const { disconnect } = useDisconnect();
12+
const [isControllerReady, setIsControllerReady] = useState(false);
13+
14+
const controllerConnector = useMemo(
15+
() => ControllerConnector.fromConnectors(connectors),
16+
[connectors],
17+
);
18+
19+
useEffect(() => {
20+
const checkReady = () => {
21+
try {
22+
if (controllerConnector) {
23+
setIsControllerReady(controllerConnector.isReady());
24+
}
25+
} catch (e) {
26+
console.error("Error checking controller readiness:", e);
27+
}
28+
};
29+
30+
checkReady();
31+
const interval = setInterval(checkReady, 1000);
32+
return () => clearInterval(interval);
33+
}, [controllerConnector]);
34+
1835
return (
19-
<main className="w-screen overflow-x-hidden flex flex-col p-4 gap-4">
20-
<div className="flex justify-between">
21-
<h2 className="text-3xl font-bold underline text-primary">
22-
Controller Example (Next.js)
23-
</h2>
24-
<ColorModeToggle />
25-
</div>
26-
<Header />
27-
<PlayButton />
28-
<Profile />
29-
<Transfer />
30-
<ManualTransferEth />
31-
<Starterpack />
32-
<DelegateAccount />
33-
<InvalidTxn />
34-
<SignMessage />
35-
<LookupControllers />
36+
<main className="h-screen w-screen flex flex-col items-center justify-center gap-4">
37+
{status !== "connected" ? (
38+
<Button
39+
onClick={() => connect({ connector: controllerConnector })}
40+
disabled={!isControllerReady}
41+
>
42+
{isControllerReady ? "Connect" : "Waiting for keychain..."}
43+
</Button>
44+
) : (
45+
<div className="flex flex-col items-center gap-4">
46+
<Button
47+
onClick={() => {
48+
controllerConnector.controller.openStarterPack(47);
49+
}}
50+
>
51+
Purchase Starterpack
52+
</Button>
53+
<Button
54+
variant="outline"
55+
onClick={() => disconnect()}
56+
className="mt-4"
57+
>
58+
Disconnect
59+
</Button>
60+
</div>
61+
)}
3662
</main>
3763
);
3864
};

examples/next/src/components/providers/StarknetProvider.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ export function StarknetProvider({ children }: PropsWithChildren) {
232232
return (
233233
<StarknetConfig
234234
autoConnect
235-
defaultChainId={mainnet.id}
235+
defaultChainId={sepolia.id}
236236
chains={starknetConfigChains}
237237
connectors={[controller, session]}
238238
explorer={cartridge}

packages/keychain/src/components/purchasenew/checkout/onchain/wallet-drawer.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import {
1616
import { ExternalWallet } from "@cartridge/controller";
1717
import { useOnchainPurchaseContext, useStarterpackContext } from "@/context";
1818
import { useConnection } from "@/hooks/connection";
19-
import { useFeature } from "@/hooks/features";
2019
import { networkWalletData } from "../../wallet/config";
2120
import { Network } from "../../types";
2221

@@ -31,8 +30,10 @@ export function WalletSelectionDrawer({
3130
isOpen,
3231
onClose,
3332
}: WalletSelectionDrawerProps) {
34-
const isSupportedPlatformsEnabled = useFeature("supported-platforms");
35-
const isApplePayEnabled = useFeature("apple-pay-support");
33+
// const isSupportedPlatformsEnabled = useFeature("supported-platforms");
34+
// const isApplePayEnabled = useFeature("apple-pay-support");
35+
const isSupportedPlatformsEnabled = true;
36+
const isApplePayEnabled = true;
3637

3738
const { isMainnet, externalDetectWallets } = useConnection();
3839
const { starterpackDetails } = useStarterpackContext();

packages/keychain/src/context/starterpack/onchain-purchase.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ export const OnchainPurchaseProvider = ({
199199
onError: setDisplayError,
200200
});
201201

202-
const [isApplePaySelected, setIsApplePaySelected] = useState(false);
202+
const [isApplePaySelected, setIsApplePaySelected] = useState(true);
203203
const {
204204
paymentLink,
205205
isCreatingOrder,

0 commit comments

Comments
 (0)