diff --git a/plugin/kintone-addins/src/actions/cascading-dropdown-selectors.ts b/plugin/kintone-addins/src/actions/cascading-dropdown-selectors.ts index 9e01dae..e671ac2 100644 --- a/plugin/kintone-addins/src/actions/cascading-dropdown-selectors.ts +++ b/plugin/kintone-addins/src/actions/cascading-dropdown-selectors.ts @@ -45,7 +45,7 @@ interface IField { label: string; } -// ドロップダウンメニューの���書タイプ、ドロップダウンオプションの検索を高速化するために使用 +// ドロップダウンメニューの辞書タイプ、ドロップダウンオプションの検索を高速化するために使用 // キーの形式は: ドロップダウンメニューの階層_value // 例: 2番目の階層で結果aを選択した場合、1_aを使用して、値aの次の階層(3番目の階層)のオプションを取得できます type DropdownDictionary = Record; @@ -67,8 +67,8 @@ namespace DropDownConfig { }); // ドロップダウンメニューの辞書を一度構築するコストが高いため、レコードのハッシュ値を計算してキャッシュキーとして使用 - // kintoneのデータが変更されていない場合、辞書を再構築���る必要はありません - const hash = await calculateHash(records); + // kintoneのデータが変更されていない場合、辞書を再構築する必要はありません。 + const hash = await calculateHash(records, fields); const storageKey = `dropdown_dictionary::${props.dropDownApp.id}_${hash}`; // ローカルストレージから辞書を取得しようとし、存在しない場合は再構築 @@ -88,8 +88,11 @@ namespace DropDownConfig { }; // Web Crypto APIを使用してハッシュ値を計算 - const calculateHash = async (records: KTRecord[]): Promise => { - const str = JSON.stringify(records); + const calculateHash = async ( + records: KTRecord[], + fields: string[] + ): Promise => { + const str = JSON.stringify(records) + JSON.stringify(fields); const encoder = new TextEncoder(); const data = encoder.encode(str); const hashBuffer = await crypto.subtle.digest("SHA-1", data); // SHA-1を使用、パフォーマンスが良く、セキュリティは不要 @@ -193,9 +196,6 @@ export class CascadingDropDownAction implements IAction { this.actionProps = actionNode.actionProps; this.props = actionNode.ActionValue as ICascadingDropDownProps; - console.log(this.actionProps); - console.log(this.props); - const result: IActionResult = { canNext: true, result: "" }; try {