hmaras commited on
Commit
7d1349c
·
verified ·
1 Parent(s): 0c4aaca

Build Preview stil is not responding take a action to fix

Browse files
Files changed (1) hide show
  1. script.js +86 -91
script.js CHANGED
@@ -2,6 +2,8 @@
2
  // Build Calculator Form Handling
3
  document.addEventListener('DOMContentLoaded', function() {
4
  const buildForm = document.getElementById('build-form');
 
 
5
  const previewElements = {
6
  toon: document.getElementById('preview-toon'),
7
  buildName: document.getElementById('preview-build-name'),
@@ -10,115 +12,108 @@ document.addEventListener('DOMContentLoaded', function() {
10
  ratingSection: document.getElementById('build-rating')
11
  };
12
 
13
- // Update preview on form changes
14
- if (buildForm) {
15
- // Map of toon names to display names
16
- const toonNames = {
17
  'vee': 'Vee',
18
  'pebble': 'Pebble',
19
  'sprout': 'Sprout',
20
  'shelly': 'Shelly'
21
- };
22
-
23
- // Map of goal names to display names
24
- const goalNames = {
25
  'ichor': 'Ichor Farming',
26
  'survival': 'Solo Survival',
27
  'research': 'Research Farming',
28
  'support': 'Team Support'
29
- };
30
-
31
- // Map of trinket names to display names
32
- const trinketNames = {
33
  'remote': "Vee's Remote",
34
  'magnifying': 'Magnifying Glass',
35
  'plush': 'Dandy Plush',
36
  'bow': 'Pink Bow'
37
- };
38
-
39
- buildForm.addEventListener('input', function(e) {
40
- const formData = new FormData(buildForm);
41
- const data = Object.fromEntries(formData.entries());
42
-
43
- // Update toon preview
44
- if (data.toon && toonNames[data.toon]) {
45
- previewElements.toon.textContent = toonNames[data.toon];
46
- } else {
47
- previewElements.toon.textContent = 'Select a Toon';
48
- }
49
-
50
- // Update build name preview
51
- if (data.buildName) {
52
- previewElements.buildName.textContent = data.buildName;
53
- if (data.goal && goalNames[data.goal]) {
54
- previewElements.buildName.textContent += ` - ${goalNames[data.goal]}`;
55
- }
56
- } else {
57
- previewElements.buildName.textContent = 'No build name yet';
58
- }
59
-
60
- // Update trinkets preview
61
- if (data.trinket1 || data.trinket2) {
62
- const trinkets = [];
63
- if (data.trinket1 && trinketNames[data.trinket1]) trinkets.push(trinketNames[data.trinket1]);
64
- if (data.trinket2 && trinketNames[data.trinket2]) trinkets.push(trinketNames[data.trinket2]);
65
- previewElements.trinkets.textContent = trinkets.join(' + ') || 'No trinkets selected';
66
- } else {
67
- previewElements.trinkets.textContent = 'No trinkets selected';
68
- }
69
 
70
- // Update rationale preview
71
- if (data.rationale) {
72
- previewElements.rationale.textContent = data.rationale;
73
- } else {
74
- previewElements.rationale.textContent = 'Add your strategic rationale to see it here';
 
 
 
 
 
 
 
 
 
 
 
 
75
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
 
77
- // Show rating section when form is complete
78
- if (data.toon && data.goal && data.trinket1 && data.trinket2 && data.buildName) {
79
- previewElements.ratingSection.classList.remove('hidden');
80
- } else {
81
- previewElements.ratingSection.classList.add('hidden');
82
- }
83
 
84
- feather.replace();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85
  });
 
86
 
87
- if (buildForm) {
88
- buildForm.addEventListener('submit', function(e) {
89
- e.preventDefault();
90
- // Get form values
91
- const toon = buildForm.querySelector('select:nth-of-type(1)').value;
92
- const goal = buildForm.querySelector('select:nth-of-type(2)').value;
93
- const trinket1 = buildForm.querySelector('select:nth-of-type(3)').value;
94
- const trinket2 = buildForm.querySelector('select:nth-of-type(4)').value;
95
- const buildName = buildForm.querySelector('input[type="text"]').value;
96
- const rationale = buildForm.querySelector('textarea').value;
97
-
98
- // Validate form
99
- if (!toon || !goal || !trinket1 || !trinket2 || !buildName) {
100
- alert('Please fill all required fields!');
101
- return;
102
- }
103
-
104
- // Save to localStorage
105
- const builds = JSON.parse(localStorage.getItem('builds') || '[]');
106
- builds.push({
107
- toon,
108
- goal,
109
- trinket1,
110
- trinket2,
111
- buildName,
112
- rationale,
113
- date: new Date().toISOString()
114
- });
115
- localStorage.setItem('builds', JSON.stringify(builds));
116
-
117
- alert('Build saved successfully!');
118
- buildForm.reset();
119
- });
120
- }
121
- // Smooth scrolling for anchor links
122
  document.querySelectorAll('a[href^="#"]').forEach(anchor => {
123
  anchor.addEventListener('click', function (e) {
124
  e.preventDefault();
 
2
  // Build Calculator Form Handling
3
  document.addEventListener('DOMContentLoaded', function() {
4
  const buildForm = document.getElementById('build-form');
5
+ if (!buildForm) return;
6
+
7
  const previewElements = {
8
  toon: document.getElementById('preview-toon'),
9
  buildName: document.getElementById('preview-build-name'),
 
12
  ratingSection: document.getElementById('build-rating')
13
  };
14
 
15
+ // Maps for display names
16
+ const displayNames = {
17
+ toon: {
 
18
  'vee': 'Vee',
19
  'pebble': 'Pebble',
20
  'sprout': 'Sprout',
21
  'shelly': 'Shelly'
22
+ },
23
+ goal: {
 
 
24
  'ichor': 'Ichor Farming',
25
  'survival': 'Solo Survival',
26
  'research': 'Research Farming',
27
  'support': 'Team Support'
28
+ },
29
+ trinket: {
 
 
30
  'remote': "Vee's Remote",
31
  'magnifying': 'Magnifying Glass',
32
  'plush': 'Dandy Plush',
33
  'bow': 'Pink Bow'
34
+ }
35
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
+ // Update preview function
38
+ function updatePreview() {
39
+ const formData = new FormData(buildForm);
40
+ const data = Object.fromEntries(formData.entries());
41
+
42
+ // Update toon preview
43
+ if (data.toon && displayNames.toon[data.toon]) {
44
+ previewElements.toon.textContent = displayNames.toon[data.toon];
45
+ } else {
46
+ previewElements.toon.textContent = 'Select a Toon';
47
+ }
48
+
49
+ // Update build name preview
50
+ if (data.buildName) {
51
+ previewElements.buildName.textContent = data.buildName;
52
+ if (data.goal && displayNames.goal[data.goal]) {
53
+ previewElements.buildName.textContent += ` - ${displayNames.goal[data.goal]}`;
54
  }
55
+ } else {
56
+ previewElements.buildName.textContent = 'No build name yet';
57
+ }
58
+
59
+ // Update trinkets preview
60
+ if (data.trinket1 || data.trinket2) {
61
+ const trinkets = [];
62
+ if (data.trinket1 && displayNames.trinket[data.trinket1]) trinkets.push(displayNames.trinket[data.trinket1]);
63
+ if (data.trinket2 && displayNames.trinket[data.trinket2]) trinkets.push(displayNames.trinket[data.trinket2]);
64
+ previewElements.trinkets.textContent = trinkets.join(' + ') || 'No trinkets selected';
65
+ } else {
66
+ previewElements.trinkets.textContent = 'No trinkets selected';
67
+ }
68
+
69
+ // Update rationale preview
70
+ if (data.rationale) {
71
+ previewElements.rationale.textContent = data.rationale;
72
+ } else {
73
+ previewElements.rationale.textContent = 'Add your strategic rationale to see it here';
74
+ }
75
+
76
+ // Show rating section when form is complete
77
+ if (data.toon && data.goal && data.trinket1 && data.trinket2 && data.buildName) {
78
+ previewElements.ratingSection.classList.remove('hidden');
79
+ } else {
80
+ previewElements.ratingSection.classList.add('hidden');
81
+ }
82
+
83
+ feather.replace();
84
+ }
85
 
86
+ // Initialize preview
87
+ updatePreview();
 
 
 
 
88
 
89
+ // Listen for all form changes
90
+ buildForm.addEventListener('input', updatePreview);
91
+ buildForm.addEventListener('change', updatePreview);
92
+ // Handle form submission
93
+ buildForm.addEventListener('submit', function(e) {
94
+ e.preventDefault();
95
+ const formData = new FormData(buildForm);
96
+ const data = Object.fromEntries(formData.entries());
97
+
98
+ // Validate form
99
+ if (!data.toon || !data.goal || !data.trinket1 || !data.trinket2 || !data.buildName) {
100
+ alert('Please fill all required fields!');
101
+ return;
102
+ }
103
+
104
+ // Save to localStorage
105
+ const builds = JSON.parse(localStorage.getItem('builds') || '[]');
106
+ builds.push({
107
+ ...data,
108
+ date: new Date().toISOString()
109
  });
110
+ localStorage.setItem('builds', JSON.stringify(builds));
111
 
112
+ alert('Build saved successfully!');
113
+ buildForm.reset();
114
+ updatePreview(); // Reset preview after submission
115
+ });
116
+ // Smooth scrolling for anchor links
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  document.querySelectorAll('a[href^="#"]').forEach(anchor => {
118
  anchor.addEventListener('click', function (e) {
119
  e.preventDefault();