Use tzdb timezones library
							parent
							
								
									40641f80a3
								
							
						
					
					
						commit
						d3abf67d88
					
				| 
						 | 
					@ -11,6 +11,7 @@
 | 
				
			||||||
        "@jamescoyle/vue-icon": "^0.1.2",
 | 
					        "@jamescoyle/vue-icon": "^0.1.2",
 | 
				
			||||||
        "@mdi/js": "^7.4.47",
 | 
					        "@mdi/js": "^7.4.47",
 | 
				
			||||||
        "@programic/vue3-tooltip": "^1.0.0",
 | 
					        "@programic/vue3-tooltip": "^1.0.0",
 | 
				
			||||||
 | 
					        "@vvo/tzdb": "^6.152.0",
 | 
				
			||||||
        "axios": "^1.7.7",
 | 
					        "axios": "^1.7.7",
 | 
				
			||||||
        "bootstrap-icons": "^1.11.3",
 | 
					        "bootstrap-icons": "^1.11.3",
 | 
				
			||||||
        "css.gg": "^2.1.4",
 | 
					        "css.gg": "^2.1.4",
 | 
				
			||||||
| 
						 | 
					@ -2121,6 +2122,12 @@
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@vvo/tzdb": {
 | 
				
			||||||
 | 
					      "version": "6.152.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@vvo/tzdb/-/tzdb-6.152.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-PSHIgDk6LjYTyAK7fPLZIliB1vSQg2OXxfkAkRJzUkwuR/Xp5FzmQNx9SmHVZhw/W/Y1x6TE6yO89PFPossswQ==",
 | 
				
			||||||
 | 
					      "license": "MIT"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/abbrev": {
 | 
					    "node_modules/abbrev": {
 | 
				
			||||||
      "version": "2.0.0",
 | 
					      "version": "2.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,6 +18,7 @@
 | 
				
			||||||
    "@jamescoyle/vue-icon": "^0.1.2",
 | 
					    "@jamescoyle/vue-icon": "^0.1.2",
 | 
				
			||||||
    "@mdi/js": "^7.4.47",
 | 
					    "@mdi/js": "^7.4.47",
 | 
				
			||||||
    "@programic/vue3-tooltip": "^1.0.0",
 | 
					    "@programic/vue3-tooltip": "^1.0.0",
 | 
				
			||||||
 | 
					    "@vvo/tzdb": "^6.152.0",
 | 
				
			||||||
    "axios": "^1.7.7",
 | 
					    "axios": "^1.7.7",
 | 
				
			||||||
    "bootstrap-icons": "^1.11.3",
 | 
					    "bootstrap-icons": "^1.11.3",
 | 
				
			||||||
    "css.gg": "^2.1.4",
 | 
					    "css.gg": "^2.1.4",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,19 @@
 | 
				
			||||||
<script lang="ts" setup>
 | 
					<script lang="ts" setup>
 | 
				
			||||||
import { ref, watch } from "vue";
 | 
					import { ref, watch } from "vue";
 | 
				
			||||||
import { useTeamsStore } from "../stores/teams";
 | 
					import { useTeamsStore } from "../stores/teams";
 | 
				
			||||||
import timezones from "../assets/timezones.json";
 | 
					//import timezones from "../assets/timezones.json";
 | 
				
			||||||
import { useRouter } from "vue-router";
 | 
					import { useRouter } from "vue-router";
 | 
				
			||||||
 | 
					import ComboBox from "../components/ComboBox.vue";
 | 
				
			||||||
 | 
					import { getTimeZones, type TimeZone } from "@vvo/tzdb";
 | 
				
			||||||
 | 
					import moment from "moment";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const timezones = getTimeZones({
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					console.log(timezones.length);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					console.log(moment.tz.names());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const teams = useTeamsStore();
 | 
					const teams = useTeamsStore();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,10 +21,9 @@ const router = useRouter();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const teamName = ref("");
 | 
					const teamName = ref("");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const timezone = ref(
 | 
					const timezone = ref<TimeZone>(timezones.find((tz) => tz.name === "America/New_York")!);
 | 
				
			||||||
  Intl.DateTimeFormat().resolvedOptions().timeZone ??
 | 
					
 | 
				
			||||||
    "Etc/UTC"
 | 
					const timezoneStr = ref("");
 | 
				
			||||||
);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const minuteOffset = ref(0);
 | 
					const minuteOffset = ref(0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,10 +31,8 @@ watch(minuteOffset, (newValue) => {
 | 
				
			||||||
  minuteOffset.value = Math.min(Math.max(0, newValue), 59);
 | 
					  minuteOffset.value = Math.min(Math.max(0, newValue), 59);
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const webhook = ref("");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function createTeam() {
 | 
					function createTeam() {
 | 
				
			||||||
  teams.createTeam(teamName.value, timezone.value, minuteOffset.value)
 | 
					  teams.createTeam(teamName.value, timezone.value.name, minuteOffset.value)
 | 
				
			||||||
    .then(() => {
 | 
					    .then(() => {
 | 
				
			||||||
      router.push("/");
 | 
					      router.push("/");
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
| 
						 | 
					@ -56,7 +64,7 @@ function createTeam() {
 | 
				
			||||||
                (view all timezones)
 | 
					                (view all timezones)
 | 
				
			||||||
              </a>
 | 
					              </a>
 | 
				
			||||||
            </h3>
 | 
					            </h3>
 | 
				
			||||||
            <v-select :options="timezones" v-model="timezone" />
 | 
					            <v-select :options="timezones" label="name" v-model="timezone" />
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <div class="form-group" id="minute-offset-group">
 | 
					          <div class="form-group" id="minute-offset-group">
 | 
				
			||||||
            <h3>Minute Offset</h3>
 | 
					            <h3>Minute Offset</h3>
 | 
				
			||||||
| 
						 | 
					@ -64,7 +72,7 @@ function createTeam() {
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <em class="aside">
 | 
					        <em class="aside">
 | 
				
			||||||
          Matches will be scheduled based on {{ timezone }} at
 | 
					          Matches will be scheduled based on {{ timezone.alternativeName }} at
 | 
				
			||||||
          {{ minuteOffset }}
 | 
					          {{ minuteOffset }}
 | 
				
			||||||
          <span v-if="minuteOffset == 1">
 | 
					          <span v-if="minuteOffset == 1">
 | 
				
			||||||
            minute
 | 
					            minute
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue