Skip to content

Commit

Permalink
fix: Allow multiple "*New Template" (#9320)
Browse files Browse the repository at this point in the history
* fix: Allow multiple *NewTemplate

* Add a number to new templates

* Start counting from 1
  • Loading branch information
Dschoordsch committed Jan 16, 2024
1 parent 32591f1 commit 3d81c3f
Show file tree
Hide file tree
Showing 9 changed files with 16 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -169,10 +169,6 @@ export const CreateNewActivity = (props: Props) => {
onError(new Error('You may only have 20 templates per team. Please remove one first.'))
return
}
if (teamTemplates.find((template) => template.node.name === '*New Template')) {
onError(new Error('You already have a new template. Try renaming that one first.'))
return
}

submitMutation()
AddReflectTemplateMutation(
Expand Down Expand Up @@ -207,10 +203,6 @@ export const CreateNewActivity = (props: Props) => {
onError(new Error('You may only have 20 templates per team. Please remove one first.'))
return
}
if (teamTemplates.find((template) => template.node.name === '*New Template')) {
onError(new Error('You already have a new template. Try renaming that one first.'))
return
}

submitMutation()
AddPokerTemplateMutation(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ const AddNewPokerTemplate = (props: Props) => {
}, 8000)
return
}
if (pokerTemplates.find((template) => template.name === '*New Template')) {
if (pokerTemplates.find((template) => template.name.startsWith('*New Template'))) {
onError(new Error('You already have a new template. Try renaming that one first.'))
errorTimerId.current = window.setTimeout(() => {
onCompleted()
Expand All @@ -102,7 +102,9 @@ const AddNewPokerTemplate = (props: Props) => {
gotoTeamTemplates()
}

const containsNewTemplate = pokerTemplates.find((template) => template.name === '*New Template')
const containsNewTemplate = pokerTemplates.find((template) =>
template.name.startsWith('*New Template')
)

if (pokerTemplates.length > Threshold.MAX_POKER_TEAM_TEMPLATES || containsNewTemplate) return null
return (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ const AddNewReflectTemplate = (props: Props) => {
}, 8000)
return
}
if (reflectTemplates.find((template) => template.name === '*New Template')) {
if (reflectTemplates.find((template) => template.name.startsWith('*New Template'))) {
onError(new Error('You already have a new template. Try renaming that one first.'))
errorTimerId.current = window.setTimeout(() => {
onCompleted()
Expand All @@ -98,7 +98,9 @@ const AddNewReflectTemplate = (props: Props) => {
gotoTeamTemplates()
}

const containsNewTemplate = reflectTemplates.find((template) => template.name === '*New Template')
const containsNewTemplate = reflectTemplates.find((template) =>
template.name.startsWith('*New Template')
)

if (reflectTemplates.length > Threshold.MAX_RETRO_TEAM_TEMPLATES || containsNewTemplate)
return null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ const EditableTemplateName = (props: Props) => {
const {name, templateId, isOwner, className} = props
const atmosphere = useAtmosphere()
const {onError, error, onCompleted, submitMutation, submitting} = useMutationProps()
const autoFocus = name === '*New Template' || name.endsWith(' Copy')
const autoFocus = name.startsWith('*New Template') || name.endsWith(' Copy')

const handleSubmit = (rawName: string) => {
if (submitting) return
Expand Down
2 changes: 1 addition & 1 deletion packages/client/mutations/AddPokerTemplateMutation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ const AddPokerTemplateMutation: StandardMutation<TAddPokerTemplateMutation> = (
const nowISO = new Date().toJSON()
const team = store.get(teamId)!
const parentTemplate = parentTemplateId ? store.get(parentTemplateId) : null
const name = parentTemplate ? parentTemplate.getValue('name') + ' Copy' : '*New Template'
const name = parentTemplate ? parentTemplate.getValue('name') + ' Copy' : '*New Template ##'

const proxyTemplate = createProxyRecord(store, 'PokerTemplate', {
name,
Expand Down
2 changes: 1 addition & 1 deletion packages/client/mutations/AddReflectTemplateMutation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ const AddReflectTemplateMutation: StandardMutation<TAddReflectTemplateMutation>
const nowISO = new Date().toJSON()
const team = store.get(teamId)!
const parentTemplate = parentTemplateId ? store.get(parentTemplateId) : null
const name = parentTemplate ? parentTemplate.getValue('name') + ' Copy' : '*New Template'
const name = parentTemplate ? parentTemplate.getValue('name') + ' Copy' : '*New Template ##'

const proxyTemplate = createProxyRecord(store, 'ReflectTemplate', {
name,
Expand Down
6 changes: 2 additions & 4 deletions packages/server/graphql/mutations/addPokerTemplate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -110,13 +110,11 @@ const addPokerTemplate = {
analytics.templateMetrics(viewer, newTemplate, 'Template Cloned')
data = {templateId: newTemplate.id}
} else {
if (allTemplates.find((template) => template.name === '*New Template')) {
return standardError(new Error('Template already created'), {userId: viewerId})
}
const {orgId} = viewerTeam

const templateCount = allTemplates.length
const newTemplate = new PokerTemplate({
name: '*New Template',
name: `*New Template #${templateCount + 1}`,
teamId,
orgId,
mainCategory: 'estimation',
Expand Down
6 changes: 2 additions & 4 deletions packages/server/graphql/mutations/addReflectTemplate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -110,13 +110,11 @@ const addReflectTemplate = {
analytics.templateMetrics(viewer, newTemplate, 'Template Cloned')
data = {templateId: newTemplate.id}
} else {
if (allTemplates.find((template) => template.name === '*New Template')) {
return standardError(new Error('Template already created'), {userId: viewerId})
}
const {orgId} = viewerTeam
// RESOLUTION
const templateCount = allTemplates.length
const base = {
'*New Template': [
[`*New Template #${templateCount + 1}`]: [
{
question: 'New prompt',
description: '',
Expand Down
2 changes: 1 addition & 1 deletion packages/server/graphql/public/types/ReflectTemplate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ const ReflectTemplate: ReflectTemplateResolvers = {
subCategories: async ({id, name}, _args, {dataLoader, authToken}) => {
// :TODO: (jmtaber129): Refactor this to be a bit cleaner if decide to use subcategories
// long-term.
if (name === '*New Template') {
if (name.startsWith('*New Template')) {
return []
}

Expand Down

0 comments on commit 3d81c3f

Please sign in to comment.