This commit is contained in:
91
G102-sequence/sdk/package/dist/useGameIframeSDK.d.ts
vendored
Normal file
91
G102-sequence/sdk/package/dist/useGameIframeSDK.d.ts
vendored
Normal file
@@ -0,0 +1,91 @@
|
||||
/**
|
||||
* Game Iframe SDK - React Hook
|
||||
* Custom hook để sử dụng SDK trong React components
|
||||
*
|
||||
* @example
|
||||
* ```tsx
|
||||
* import { useGameIframeSDK } from 'game-iframe-sdk/react';
|
||||
*
|
||||
* function GamePlayer() {
|
||||
* const iframeRef = useRef<HTMLIFrameElement>(null);
|
||||
*
|
||||
* const {
|
||||
* isReady,
|
||||
* sendGameData,
|
||||
* sendLeaderboard
|
||||
* } = useGameIframeSDK({
|
||||
* iframeRef,
|
||||
* iframeOrigin: 'http://senaai.vn:1357',
|
||||
* onGameReady: () => console.log('Game ready!'),
|
||||
* onAnswerReport: (data) => submitToServer(data),
|
||||
* onFinalResult: (data) => showResults(data),
|
||||
* });
|
||||
*
|
||||
* return <iframe ref={iframeRef} src={gameUrl} />;
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
import { GameIframeSDK } from './GameIframeSDK';
|
||||
import { GameIframeSDKConfig, PushDataPayload, LeaderboardData, AnswerReportData, FinalResultData } from './types';
|
||||
export interface UseGameIframeSDKOptions extends Omit<GameIframeSDKConfig, 'iframeOrigin'> {
|
||||
/**
|
||||
* Ref to iframe element
|
||||
*/
|
||||
iframeRef: React.RefObject<HTMLIFrameElement>;
|
||||
/**
|
||||
* Origin of iframe (required)
|
||||
*/
|
||||
iframeOrigin: string;
|
||||
/**
|
||||
* Callback when game is ready
|
||||
*/
|
||||
onGameReady?: () => void;
|
||||
/**
|
||||
* Callback when user answers a question
|
||||
*/
|
||||
onAnswerReport?: (data: AnswerReportData) => void;
|
||||
/**
|
||||
* Callback when game ends
|
||||
*/
|
||||
onFinalResult?: (data: FinalResultData) => void;
|
||||
/**
|
||||
* Callback when game requests leaderboard
|
||||
*/
|
||||
onLeaderboardRequest?: (top: number) => void;
|
||||
/**
|
||||
* Callback for errors
|
||||
*/
|
||||
onError?: (error: {
|
||||
message: string;
|
||||
error?: any;
|
||||
}) => void;
|
||||
}
|
||||
export interface UseGameIframeSDKReturn {
|
||||
/**
|
||||
* SDK instance
|
||||
*/
|
||||
sdk: GameIframeSDK | null;
|
||||
/**
|
||||
* Whether game is ready
|
||||
*/
|
||||
isReady: boolean;
|
||||
/**
|
||||
* Send game data to iframe
|
||||
*/
|
||||
sendGameData: (data: PushDataPayload) => boolean;
|
||||
/**
|
||||
* Send leaderboard data
|
||||
*/
|
||||
sendLeaderboard: (data: LeaderboardData) => boolean;
|
||||
/**
|
||||
* Queue data to send when ready
|
||||
*/
|
||||
queueGameData: (data: PushDataPayload) => void;
|
||||
/**
|
||||
* Force reload iframe
|
||||
*/
|
||||
reloadIframe: () => boolean;
|
||||
}
|
||||
export declare function useGameIframeSDK(options: UseGameIframeSDKOptions): UseGameIframeSDKReturn;
|
||||
export default useGameIframeSDK;
|
||||
//# sourceMappingURL=useGameIframeSDK.d.ts.map
|
||||
Reference in New Issue
Block a user