29 lines
755 B
TypeScript
29 lines
755 B
TypeScript
import { useCallback } from 'react';
|
|
|
|
import type { ProfileSaveArchiveSummary } from '../../../packages/shared/src/contracts/runtime';
|
|
|
|
type UseRpgEntrySaveResumeParams = {
|
|
handleResumeSaveEntry: (entry: ProfileSaveArchiveSummary) => Promise<void>;
|
|
};
|
|
|
|
/**
|
|
* RPG 入口域里的“继续游戏”入口只负责转发恢复动作,
|
|
* 让壳层组件不直接知道具体的存档恢复实现细节。
|
|
*/
|
|
export function useRpgEntrySaveResume(
|
|
params: UseRpgEntrySaveResumeParams,
|
|
) {
|
|
const { handleResumeSaveEntry } = params;
|
|
|
|
const resumeSelectedSave = useCallback(
|
|
async (entry: ProfileSaveArchiveSummary) => {
|
|
await handleResumeSaveEntry(entry);
|
|
},
|
|
[handleResumeSaveEntry],
|
|
);
|
|
|
|
return {
|
|
resumeSelectedSave,
|
|
};
|
|
}
|