Skip to content

Commit 3b0a228

Browse files
[create-toolpad-app] Add CRUD to generated projects (#4826)
Co-authored-by: Bharat Kashyap <[email protected]>
1 parent 5f81ab4 commit 3b0a228

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+1375
-384
lines changed

docs/data/toolpad/core/components/crud/CrudAdvanced.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,10 @@ export const notesDataSource = {
139139
setTimeout(resolve, 750);
140140
});
141141

142-
const newNote = { id: notesStore.length + 1, ...data };
142+
const newNote = {
143+
id: notesStore.reduce((max, note) => Math.max(max, note.id), 0) + 1,
144+
...data,
145+
};
143146

144147
notesStore = [...notesStore, newNote];
145148

docs/data/toolpad/core/components/crud/CrudAdvanced.tsx

+4-1
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,10 @@ export const notesDataSource: DataSource<Note> = {
149149
setTimeout(resolve, 750);
150150
});
151151

152-
const newNote = { id: notesStore.length + 1, ...data } as Note;
152+
const newNote = {
153+
id: notesStore.reduce((max, note) => Math.max(max, note.id), 0) + 1,
154+
...data,
155+
} as Note;
153156

154157
notesStore = [...notesStore, newNote];
155158

docs/data/toolpad/core/components/crud/CrudBasic.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ export const notesDataSource = {
133133
});
134134

135135
const newNote = {
136-
id: notesStore.length + 1,
136+
id: notesStore.reduce((max, note) => Math.max(max, note.id), 0) + 1,
137137
...data,
138138
};
139139

docs/data/toolpad/core/components/crud/CrudBasic.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ export const notesDataSource: DataSource<Note> = {
141141
});
142142

143143
const newNote = {
144-
id: notesStore.length + 1,
144+
id: notesStore.reduce((max, note) => Math.max(max, note.id), 0) + 1,
145145
...data,
146146
} as Note;
147147

docs/data/toolpad/core/components/crud/CrudCreate.js

+6-3
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ const demoTheme = createTheme({
3333
},
3434
});
3535

36-
let people = [
36+
let peopleStore = [
3737
{ id: 1, lastName: 'Snow', firstName: 'Jon', age: 14 },
3838
{ id: 2, lastName: 'Lannister', firstName: 'Cersei', age: 31 },
3939
{ id: 3, lastName: 'Lannister', firstName: 'Jaime', age: 31 },
@@ -66,9 +66,12 @@ export const peopleDataSource = {
6666
setTimeout(resolve, 750);
6767
});
6868

69-
const newPerson = { id: people.length + 1, ...data };
69+
const newPerson = {
70+
id: peopleStore.reduce((max, person) => Math.max(max, person.id), 0) + 1,
71+
...data,
72+
};
7073

71-
people = [...people, newPerson];
74+
peopleStore = [...peopleStore, newPerson];
7275

7376
return newPerson;
7477
},

docs/data/toolpad/core/components/crud/CrudCreate.tsx

+6-3
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export interface Person extends DataModel {
3939
age: number;
4040
}
4141

42-
let people: Person[] = [
42+
let peopleStore: Person[] = [
4343
{ id: 1, lastName: 'Snow', firstName: 'Jon', age: 14 },
4444
{ id: 2, lastName: 'Lannister', firstName: 'Cersei', age: 31 },
4545
{ id: 3, lastName: 'Lannister', firstName: 'Jaime', age: 31 },
@@ -73,9 +73,12 @@ export const peopleDataSource: DataSource<Person> &
7373
setTimeout(resolve, 750);
7474
});
7575

76-
const newPerson = { id: people.length + 1, ...data } as Person;
76+
const newPerson = {
77+
id: peopleStore.reduce((max, person) => Math.max(max, person.id), 0) + 1,
78+
...data,
79+
} as Person;
7780

78-
people = [...people, newPerson];
81+
peopleStore = [...peopleStore, newPerson];
7982

8083
return newPerson;
8184
},

docs/data/toolpad/core/components/crud/CrudEdit.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ const demoTheme = createTheme({
3333
},
3434
});
3535

36-
let people = [
36+
let peopleStore = [
3737
{ id: 1, lastName: 'Snow', firstName: 'Jon', age: 14 },
3838
{ id: 2, lastName: 'Lannister', firstName: 'Cersei', age: 31 },
3939
{ id: 3, lastName: 'Lannister', firstName: 'Jaime', age: 31 },
@@ -66,7 +66,9 @@ export const peopleDataSource = {
6666
setTimeout(resolve, 750);
6767
});
6868

69-
const personToShow = people.find((person) => person.id === Number(personId));
69+
const personToShow = peopleStore.find(
70+
(person) => person.id === Number(personId),
71+
);
7072

7173
if (!personToShow) {
7274
throw new Error('Person not found');
@@ -81,7 +83,7 @@ export const peopleDataSource = {
8183

8284
let updatedPerson = null;
8385

84-
people = people.map((person) => {
86+
peopleStore = peopleStore.map((person) => {
8587
if (person.id === Number(personId)) {
8688
updatedPerson = { ...person, ...data };
8789
return updatedPerson;

docs/data/toolpad/core/components/crud/CrudEdit.tsx

+5-3
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export interface Person extends DataModel {
3939
age: number;
4040
}
4141

42-
let people: Person[] = [
42+
let peopleStore: Person[] = [
4343
{ id: 1, lastName: 'Snow', firstName: 'Jon', age: 14 },
4444
{ id: 2, lastName: 'Lannister', firstName: 'Cersei', age: 31 },
4545
{ id: 3, lastName: 'Lannister', firstName: 'Jaime', age: 31 },
@@ -73,7 +73,9 @@ export const peopleDataSource: DataSource<Person> &
7373
setTimeout(resolve, 750);
7474
});
7575

76-
const personToShow = people.find((person) => person.id === Number(personId));
76+
const personToShow = peopleStore.find(
77+
(person) => person.id === Number(personId),
78+
);
7779

7880
if (!personToShow) {
7981
throw new Error('Person not found');
@@ -88,7 +90,7 @@ export const peopleDataSource: DataSource<Person> &
8890

8991
let updatedPerson: Person | null = null;
9092

91-
people = people.map((person) => {
93+
peopleStore = peopleStore.map((person) => {
9294
if (person.id === Number(personId)) {
9395
updatedPerson = { ...person, ...data };
9496
return updatedPerson;

docs/data/toolpad/core/components/crud/CrudList.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ const demoTheme = createTheme({
3333
},
3434
});
3535

36-
let people = [
36+
let peopleStore = [
3737
{ id: 1, lastName: 'Snow', firstName: 'Jon', age: 14 },
3838
{ id: 2, lastName: 'Lannister', firstName: 'Cersei', age: 31 },
3939
{ id: 3, lastName: 'Lannister', firstName: 'Jaime', age: 31 },
@@ -66,7 +66,7 @@ export const peopleDataSource = {
6666
setTimeout(resolve, 750);
6767
});
6868

69-
let processedPeople = [...people];
69+
let processedPeople = [...peopleStore];
7070

7171
// Apply filters (demo only)
7272
if (filterModel?.items?.length) {
@@ -135,7 +135,7 @@ export const peopleDataSource = {
135135
setTimeout(resolve, 750);
136136
});
137137

138-
people = people.filter((person) => person.id !== Number(personId));
138+
peopleStore = peopleStore.filter((person) => person.id !== Number(personId));
139139
},
140140
};
141141

docs/data/toolpad/core/components/crud/CrudList.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export interface Person extends DataModel {
3939
age: number;
4040
}
4141

42-
let people: Person[] = [
42+
let peopleStore: Person[] = [
4343
{ id: 1, lastName: 'Snow', firstName: 'Jon', age: 14 },
4444
{ id: 2, lastName: 'Lannister', firstName: 'Cersei', age: 31 },
4545
{ id: 3, lastName: 'Lannister', firstName: 'Jaime', age: 31 },
@@ -73,7 +73,7 @@ export const peopleDataSource: DataSource<Person> &
7373
setTimeout(resolve, 750);
7474
});
7575

76-
let processedPeople = [...people];
76+
let processedPeople = [...peopleStore];
7777

7878
// Apply filters (demo only)
7979
if (filterModel?.items?.length) {
@@ -142,7 +142,7 @@ export const peopleDataSource: DataSource<Person> &
142142
setTimeout(resolve, 750);
143143
});
144144

145-
people = people.filter((person) => person.id !== Number(personId));
145+
peopleStore = peopleStore.filter((person) => person.id !== Number(personId));
146146
},
147147
};
148148

docs/data/toolpad/core/components/crud/CrudListDataGrid.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ const demoTheme = createTheme({
2424
breakpoints: { values: { xs: 0, sm: 600, md: 600, lg: 1200, xl: 1536 } },
2525
});
2626

27-
let people = [
27+
let peopleStore = [
2828
{ id: 1, lastName: 'Snow', firstName: 'Jon', age: 14 },
2929
{ id: 2, lastName: 'Lannister', firstName: 'Cersei', age: 31 },
3030
{ id: 3, lastName: 'Lannister', firstName: 'Jaime', age: 31 },
@@ -47,7 +47,7 @@ export const peopleDataSource = {
4747
setTimeout(resolve, 750);
4848
});
4949

50-
let processedPeople = [...people];
50+
let processedPeople = [...peopleStore];
5151

5252
if (filterModel?.items?.length) {
5353
filterModel.items.forEach(({ field, value, operator }) => {
@@ -108,7 +108,7 @@ export const peopleDataSource = {
108108
setTimeout(resolve, 750);
109109
});
110110

111-
people = people.filter((person) => person.id !== Number(personId));
111+
peopleStore = peopleStore.filter((person) => person.id !== Number(personId));
112112
},
113113
};
114114

docs/data/toolpad/core/components/crud/CrudListDataGrid.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export interface Person extends DataModel {
2929
age: number;
3030
}
3131

32-
let people: Person[] = [
32+
let peopleStore: Person[] = [
3333
{ id: 1, lastName: 'Snow', firstName: 'Jon', age: 14 },
3434
{ id: 2, lastName: 'Lannister', firstName: 'Cersei', age: 31 },
3535
{ id: 3, lastName: 'Lannister', firstName: 'Jaime', age: 31 },
@@ -53,7 +53,7 @@ export const peopleDataSource: DataSource<Person> &
5353
setTimeout(resolve, 750);
5454
});
5555

56-
let processedPeople = [...people];
56+
let processedPeople = [...peopleStore];
5757

5858
if (filterModel?.items?.length) {
5959
filterModel.items.forEach(({ field, value, operator }) => {
@@ -114,7 +114,7 @@ export const peopleDataSource: DataSource<Person> &
114114
setTimeout(resolve, 750);
115115
});
116116

117-
people = people.filter((person) => person.id !== Number(personId));
117+
peopleStore = peopleStore.filter((person) => person.id !== Number(personId));
118118
},
119119
};
120120

docs/data/toolpad/core/components/crud/CrudNoCache.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,10 @@ export const notesDataSource = {
132132
setTimeout(resolve, 750);
133133
});
134134

135-
const newNote = { id: notesStore.length + 1, ...data };
135+
const newNote = {
136+
id: notesStore.reduce((max, note) => Math.max(max, note.id), 0) + 1,
137+
...data,
138+
};
136139

137140
notesStore = [...notesStore, newNote];
138141

docs/data/toolpad/core/components/crud/CrudNoCache.tsx

+4-1
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,10 @@ export const notesDataSource: DataSource<Note> = {
137137
setTimeout(resolve, 750);
138138
});
139139

140-
const newNote = { id: notesStore.length + 1, ...data } as Note;
140+
const newNote = {
141+
id: notesStore.reduce((max, note) => Math.max(max, note.id), 0) + 1,
142+
...data,
143+
} as Note;
141144

142145
notesStore = [...notesStore, newNote];
143146

docs/data/toolpad/core/components/crud/CrudShow.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ const demoTheme = createTheme({
3333
},
3434
});
3535

36-
let people = [
36+
let peopleStore = [
3737
{ id: 1, lastName: 'Snow', firstName: 'Jon', age: 14 },
3838
{ id: 2, lastName: 'Lannister', firstName: 'Cersei', age: 31 },
3939
{ id: 3, lastName: 'Lannister', firstName: 'Jaime', age: 31 },
@@ -66,7 +66,9 @@ export const peopleDataSource = {
6666
setTimeout(resolve, 750);
6767
});
6868

69-
const personToShow = people.find((person) => person.id === Number(personId));
69+
const personToShow = peopleStore.find(
70+
(person) => person.id === Number(personId),
71+
);
7072

7173
if (!personToShow) {
7274
throw new Error('Person not found');
@@ -79,7 +81,7 @@ export const peopleDataSource = {
7981
setTimeout(resolve, 750);
8082
});
8183

82-
people = people.filter((person) => person.id !== Number(personId));
84+
peopleStore = peopleStore.filter((person) => person.id !== Number(personId));
8385
},
8486
};
8587

docs/data/toolpad/core/components/crud/CrudShow.tsx

+5-3
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export interface Person extends DataModel {
3939
age: number;
4040
}
4141

42-
let people: Person[] = [
42+
let peopleStore: Person[] = [
4343
{ id: 1, lastName: 'Snow', firstName: 'Jon', age: 14 },
4444
{ id: 2, lastName: 'Lannister', firstName: 'Cersei', age: 31 },
4545
{ id: 3, lastName: 'Lannister', firstName: 'Jaime', age: 31 },
@@ -73,7 +73,9 @@ export const peopleDataSource: DataSource<Person> &
7373
setTimeout(resolve, 750);
7474
});
7575

76-
const personToShow = people.find((person) => person.id === Number(personId));
76+
const personToShow = peopleStore.find(
77+
(person) => person.id === Number(personId),
78+
);
7779

7880
if (!personToShow) {
7981
throw new Error('Person not found');
@@ -86,7 +88,7 @@ export const peopleDataSource: DataSource<Person> &
8688
setTimeout(resolve, 750);
8789
});
8890

89-
people = people.filter((person) => person.id !== Number(personId));
91+
peopleStore = peopleStore.filter((person) => person.id !== Number(personId));
9092
},
9193
};
9294

0 commit comments

Comments
 (0)