feat(pop): pop-search status-chip 입력 타입 추가 + all_rows 이벤트 연동
pop-search 컴포넌트에 status-chip 입력 타입을 추가하여 연결된 카드의 전체 데이터를 구독하고 상태별 건수를 집계/표시한다. 칩 클릭 시 filter_value를 발행하여 카드 목록을 필터링한다. [status-chip 입력 타입] - types.ts: StatusChipStyle, StatusChipConfig, STATUS_CHIP_STYLE_LABELS - PopSearchComponent: StatusChipInput 컴포넌트 (allRows 구독 + 건수 집계) - PopSearchConfig: StatusChipDetailSettings 설정 패널 (칩 옵션/스타일) - index.tsx: receivable에 all_rows 이벤트 등록 [all_rows 이벤트] - pop-card-list-v2: 데이터 로드 시 all_rows publish + sendable 등록 - pop-card-list: 데이터 로드 시 all_rows publish + sendable 등록 - useConnectionResolver: all_rows 타입 자동 매칭 로직 추가 [pop-card-list-v2 개선] - 하위 테이블 필터 적용 시 __subStatus__ 가상 컬럼 주입 - externalFilters에 하위 테이블 조건 분리 처리
This commit is contained in:
@@ -60,6 +60,9 @@ function getAutoMatchPairs(
|
||||
if (s.type === "filter_value" && r.type === "filter_value") {
|
||||
pairs.push({ sourceKey: s.key, targetKey: r.key, isFilter: true });
|
||||
}
|
||||
if (s.type === "all_rows" && r.type === "all_rows") {
|
||||
pairs.push({ sourceKey: s.key, targetKey: r.key, isFilter: false });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,11 +108,17 @@ export function useConnectionResolver({
|
||||
const fieldName = data?.fieldName as string | undefined;
|
||||
const filterColumns = data?.filterColumns as string[] | undefined;
|
||||
const filterMode = (data?.filterMode as string) || "contains";
|
||||
// conn.filterConfig에 targetColumn이 명시되어 있으면 우선 사용
|
||||
const effectiveColumn = conn.filterConfig?.targetColumn || fieldName;
|
||||
const effectiveMode = conn.filterConfig?.filterMode || filterMode;
|
||||
const baseFilterConfig = effectiveColumn
|
||||
? { targetColumn: effectiveColumn, targetColumns: conn.filterConfig?.targetColumns || (filterColumns?.length ? filterColumns : [effectiveColumn]), filterMode: effectiveMode }
|
||||
: conn.filterConfig;
|
||||
publish(targetEvent, {
|
||||
value: payload,
|
||||
filterConfig: fieldName
|
||||
? { targetColumn: fieldName, targetColumns: filterColumns?.length ? filterColumns : [fieldName], filterMode }
|
||||
: conn.filterConfig,
|
||||
filterConfig: conn.filterConfig?.isSubTable
|
||||
? { ...baseFilterConfig, isSubTable: true }
|
||||
: baseFilterConfig,
|
||||
_connectionId: conn.id,
|
||||
});
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user