Open lucasbordeau opened 3 months ago
Disclaimer: This comment was automatically generated with AI. It can give some useful hints as to where to look for, but sometimes it can also give very inaccurate answers so takes this with a pinch of salt :).
To optimize RecordTableRow
and CheckboxCell
by removing calls to Recoil and styled-components, follow these steps:
Remove Recoil from CheckboxCell
:
/packages/twenty-front/src/modules/object-record/record-table/components/CheckboxCell.tsx
.recoil
.useState
or context API.Example:
import React, { useState, useContext } from 'react';
import { RecordTableRowContext } from './RecordTableRow';
const CheckboxCell = () => {
const { recordId } = useContext(RecordTableRowContext);
const [currentRowSelected, setCurrentRowSelected] = useState(false);
const handleClick = () => {
setCurrentRowSelected(!currentRowSelected);
};
return (
<div onClick={handleClick}>
<input type="checkbox" checked={currentRowSelected} readOnly />
</div>
);
};
export default CheckboxCell;
Remove styled-components from CheckboxCell
:
emotion
.Example:
import React from 'react';
import './CheckboxCell.css'; // Create a corresponding CSS file
const CheckboxCell = () => {
return (
<div className="checkbox-cell">
<input type="checkbox" />
</div>
);
};
export default CheckboxCell;
Remove Recoil from RecordTableRow
:
/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableRow.tsx
.recoil
.useState
or context API.Example:
import React, { useContext } from 'react';
import { RecordTableRowContext } from './RecordTableRowContext';
const RecordTableRow = ({ recordId, rowIndex }) => {
const { pathToShowPage, isSelected } = useContext(RecordTableRowContext);
return (
<tr data-testid={`record-row-${recordId}`} data-selectable-id={recordId}>
<td>
<CheckboxCell />
</td>
<td></td>
</tr>
);
};
export default RecordTableRow;
Remove styled-components from RecordTableRow
:
emotion
.Example:
import React from 'react';
import './RecordTableRow.css'; // Create a corresponding CSS file
const RecordTableRow = ({ recordId, rowIndex }) => {
return (
<tr className="record-table-row" data-testid={`record-row-${recordId}`} data-selectable-id={recordId}>
<td>
<CheckboxCell />
</td>
<td></td>
</tr>
);
};
export default RecordTableRow;
/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableRow.tsx /packages/twenty-front/src/modules/object-record/record-table/components/CheckboxCell.tsx /packages/twenty-front/src/modules/object-record/record-table/hooks/useRecordTable.ts /packages/twenty-front/src/modules/object-record/record-table/components/RecordTableCellFieldContextWrapper.tsx
Scope & Context
We're still having room to optimize table row and the select cell checkbox.
Desired behavior
As we did for RecordTableCell, RecordTableRow and CheckboxCell should be optimized to remove any call to recoil and any styled-component.