Feat: revamp group by settings (#8503)
This PR fix #8202 that is revamping the `Options` settings for board and table. <img width="221" alt="Screenshot 2024-11-15 at 11 47 52 AM" src="https://github.com/user-attachments/assets/0b143c95-810d-408b-b19e-c2678cd5653a"> <img width="214" alt="Screenshot 2024-11-15 at 11 47 59 AM" src="https://github.com/user-attachments/assets/3468734a-8174-4e36-a8ee-08dad6c56227"> <img width="210" alt="Screenshot 2024-11-15 at 11 48 10 AM" src="https://github.com/user-attachments/assets/300628f5-6645-4f1c-af8a-befce2714716"> <img width="212" alt="Screenshot 2024-11-15 at 11 48 37 AM" src="https://github.com/user-attachments/assets/37a3db40-2146-45eb-bea4-44e1041f5bcf"> <img width="214" alt="Screenshot 2024-11-15 at 11 48 44 AM" src="https://github.com/user-attachments/assets/42d2adcc-8f03-4f28-928b-d3c3d54d388a"> <img width="213" alt="Screenshot 2024-11-15 at 11 48 51 AM" src="https://github.com/user-attachments/assets/90824568-b979-46a7-9841-ab8b9978e138"> <img width="211" alt="Screenshot 2024-11-15 at 11 49 00 AM" src="https://github.com/user-attachments/assets/fa22446a-b1db-4d97-9a45-0778bf09ae3c"> --------- Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
@ -1,19 +1,25 @@
|
||||
import { ExtractPathParams } from '@/types/ExtractPathParams';
|
||||
import { SettingsPath } from '@/types/SettingsPath';
|
||||
import { isDefined } from '~/utils/isDefined';
|
||||
|
||||
type PathParams = {
|
||||
type Params<V extends string> = {
|
||||
[K in ExtractPathParams<V>]: string;
|
||||
} & {
|
||||
id?: string;
|
||||
objectSlug?: string;
|
||||
};
|
||||
|
||||
export const getSettingsPagePath = <Path extends SettingsPath>(
|
||||
path: Path,
|
||||
params?: PathParams,
|
||||
params?: Params<Path>,
|
||||
) => {
|
||||
let resultPath = `/settings/${path}`;
|
||||
|
||||
if (isDefined(params?.objectSlug)) {
|
||||
resultPath = resultPath.replace(':objectSlug', params.objectSlug);
|
||||
if (isDefined(params)) {
|
||||
resultPath = resultPath.replace(/:([a-zA-Z]+)/g, (_, key) => {
|
||||
const value = params[key as keyof Params<Path>];
|
||||
|
||||
return value;
|
||||
});
|
||||
}
|
||||
|
||||
if (isDefined(params?.id)) {
|
||||
|
||||
Reference in New Issue
Block a user