mirror of
https://github.com/Dictionarry-Hub/profilarr.git
synced 2026-01-31 14:50:50 +01:00
feat: filter out invalid changes in ChangeTable and useChangeParser
This commit is contained in:
@@ -17,8 +17,15 @@ const ChangeTable = ({
|
||||
fetchGitStatus
|
||||
}) => {
|
||||
const sortedChanges = changesArray => {
|
||||
if (isMergeConflict || !sortConfig?.key) return changesArray;
|
||||
return [...changesArray].sort((a, b) => {
|
||||
// Filter out items with unknown status/type
|
||||
const validChanges = changesArray.filter(
|
||||
change =>
|
||||
change && change.type && change.type.toLowerCase() !== 'unknown'
|
||||
);
|
||||
|
||||
if (isMergeConflict || !sortConfig?.key) return validChanges;
|
||||
|
||||
return [...validChanges].sort((a, b) => {
|
||||
if (a[sortConfig.key] < b[sortConfig.key]) {
|
||||
return sortConfig.direction === 'ascending' ? -1 : 1;
|
||||
}
|
||||
|
||||
@@ -98,19 +98,30 @@ export default function useChangeParser(changes) {
|
||||
const parsedChanges = useMemo(() => {
|
||||
if (!Array.isArray(changes)) return [];
|
||||
|
||||
return changes.map((item, index) => {
|
||||
const changeType =
|
||||
item.change.charAt(0).toUpperCase() +
|
||||
item.change.slice(1).toLowerCase();
|
||||
// Filter out entries without a valid change property before mapping
|
||||
return changes
|
||||
.filter(
|
||||
item =>
|
||||
item &&
|
||||
typeof item.change === 'string' &&
|
||||
item.change.length > 0
|
||||
)
|
||||
.map((item, index) => {
|
||||
const changeType =
|
||||
item.change.charAt(0).toUpperCase() +
|
||||
item.change.slice(1).toLowerCase();
|
||||
|
||||
return {
|
||||
id: `${item.key}-${index}-${item.change}`,
|
||||
changeType,
|
||||
key: formatKey(item.key),
|
||||
from: parseValue(item.from),
|
||||
to: parseValue(item.to ?? item.value)
|
||||
};
|
||||
});
|
||||
return {
|
||||
id: `${item.key}-${index}-${item.change}`,
|
||||
changeType,
|
||||
key:
|
||||
typeof item.key === 'string'
|
||||
? formatKey(item.key)
|
||||
: String(item.key || ''),
|
||||
from: parseValue(item.from),
|
||||
to: parseValue(item.to ?? item.value)
|
||||
};
|
||||
});
|
||||
}, [changes]);
|
||||
|
||||
return parsedChanges;
|
||||
|
||||
Reference in New Issue
Block a user