From 643ff481e021a9aaeabee1fd595445c18a3cd7fd Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Thu, 8 Sep 2022 16:32:49 +0800 Subject: [PATCH] Deprecate old PITR components --- .../PITRBackupSelection.constants.ts | 1204 ----------------- .../PITRBackupSelection.tsx | 321 ----- .../PITRBackupSelection.types.ts | 8 - .../PITRBackupSelection.utils.ts | 27 - .../Backups/PITRBackupSelection/index.tsx | 2 - .../components/interfaces/Database/index.ts | 2 - 6 files changed, 1564 deletions(-) delete mode 100644 studio/components/interfaces/Database/Backups/PITRBackupSelection/PITRBackupSelection.constants.ts delete mode 100644 studio/components/interfaces/Database/Backups/PITRBackupSelection/PITRBackupSelection.tsx delete mode 100644 studio/components/interfaces/Database/Backups/PITRBackupSelection/PITRBackupSelection.types.ts delete mode 100644 studio/components/interfaces/Database/Backups/PITRBackupSelection/PITRBackupSelection.utils.ts delete mode 100644 studio/components/interfaces/Database/Backups/PITRBackupSelection/index.tsx diff --git a/studio/components/interfaces/Database/Backups/PITRBackupSelection/PITRBackupSelection.constants.ts b/studio/components/interfaces/Database/Backups/PITRBackupSelection/PITRBackupSelection.constants.ts deleted file mode 100644 index c0f1f870270..00000000000 --- a/studio/components/interfaces/Database/Backups/PITRBackupSelection/PITRBackupSelection.constants.ts +++ /dev/null @@ -1,1204 +0,0 @@ -// https://github.com/dmfilipenko/timezones.json/blob/master/timezones.json -export const ALL_TIMEZONES = [ - { - value: 'Dateline Standard Time', - abbr: 'DST', - offset: -12, - isdst: false, - text: '(UTC-12:00) International Date Line West', - utc: ['Etc/GMT+12'], - }, - { - value: 'UTC-11', - abbr: 'U', - offset: -11, - isdst: false, - text: '(UTC-11:00) Coordinated Universal Time-11', - utc: ['Etc/GMT+11', 'Pacific/Midway', 'Pacific/Niue', 'Pacific/Pago_Pago'], - }, - { - value: 'Hawaiian Standard Time', - abbr: 'HST', - offset: -10, - isdst: false, - text: '(UTC-10:00) Hawaii', - utc: [ - 'Etc/GMT+10', - 'Pacific/Honolulu', - 'Pacific/Johnston', - 'Pacific/Rarotonga', - 'Pacific/Tahiti', - ], - }, - { - value: 'Alaskan Standard Time', - abbr: 'AKDT', - offset: -8, - isdst: true, - text: '(UTC-09:00) Alaska', - utc: [ - 'America/Anchorage', - 'America/Juneau', - 'America/Nome', - 'America/Sitka', - 'America/Yakutat', - ], - }, - { - value: 'Pacific Standard Time (Mexico)', - abbr: 'PDT', - offset: -7, - isdst: true, - text: '(UTC-08:00) Baja California', - utc: ['America/Santa_Isabel'], - }, - { - value: 'Pacific Daylight Time', - abbr: 'PDT', - offset: -7, - isdst: true, - text: '(UTC-07:00) Pacific Daylight Time (US & Canada)', - utc: ['America/Los_Angeles', 'America/Tijuana', 'America/Vancouver'], - }, - { - value: 'Pacific Standard Time', - abbr: 'PST', - offset: -8, - isdst: false, - text: '(UTC-08:00) Pacific Standard Time (US & Canada)', - utc: ['America/Los_Angeles', 'America/Tijuana', 'America/Vancouver', 'PST8PDT'], - }, - { - value: 'US Mountain Standard Time', - abbr: 'UMST', - offset: -7, - isdst: false, - text: '(UTC-07:00) Arizona', - utc: [ - 'America/Creston', - 'America/Dawson', - 'America/Dawson_Creek', - 'America/Hermosillo', - 'America/Phoenix', - 'America/Whitehorse', - 'Etc/GMT+7', - ], - }, - { - value: 'Mountain Standard Time (Mexico)', - abbr: 'MDT', - offset: -6, - isdst: true, - text: '(UTC-07:00) Chihuahua, La Paz, Mazatlan', - utc: ['America/Chihuahua', 'America/Mazatlan'], - }, - { - value: 'Mountain Standard Time', - abbr: 'MDT', - offset: -6, - isdst: true, - text: '(UTC-07:00) Mountain Time (US & Canada)', - utc: [ - 'America/Boise', - 'America/Cambridge_Bay', - 'America/Denver', - 'America/Edmonton', - 'America/Inuvik', - 'America/Ojinaga', - 'America/Yellowknife', - 'MST7MDT', - ], - }, - { - value: 'Central America Standard Time', - abbr: 'CAST', - offset: -6, - isdst: false, - text: '(UTC-06:00) Central America', - utc: [ - 'America/Belize', - 'America/Costa_Rica', - 'America/El_Salvador', - 'America/Guatemala', - 'America/Managua', - 'America/Tegucigalpa', - 'Etc/GMT+6', - 'Pacific/Galapagos', - ], - }, - { - value: 'Central Standard Time', - abbr: 'CDT', - offset: -5, - isdst: true, - text: '(UTC-06:00) Central Time (US & Canada)', - utc: [ - 'America/Chicago', - 'America/Indiana/Knox', - 'America/Indiana/Tell_City', - 'America/Matamoros', - 'America/Menominee', - 'America/North_Dakota/Beulah', - 'America/North_Dakota/Center', - 'America/North_Dakota/New_Salem', - 'America/Rainy_River', - 'America/Rankin_Inlet', - 'America/Resolute', - 'America/Winnipeg', - 'CST6CDT', - ], - }, - { - value: 'Central Standard Time (Mexico)', - abbr: 'CDT', - offset: -5, - isdst: true, - text: '(UTC-06:00) Guadalajara, Mexico City, Monterrey', - utc: [ - 'America/Bahia_Banderas', - 'America/Cancun', - 'America/Merida', - 'America/Mexico_City', - 'America/Monterrey', - ], - }, - { - value: 'Canada Central Standard Time', - abbr: 'CCST', - offset: -6, - isdst: false, - text: '(UTC-06:00) Saskatchewan', - utc: ['America/Regina', 'America/Swift_Current'], - }, - { - value: 'SA Pacific Standard Time', - abbr: 'SPST', - offset: -5, - isdst: false, - text: '(UTC-05:00) Bogota, Lima, Quito', - utc: [ - 'America/Bogota', - 'America/Cayman', - 'America/Coral_Harbour', - 'America/Eirunepe', - 'America/Guayaquil', - 'America/Jamaica', - 'America/Lima', - 'America/Panama', - 'America/Rio_Branco', - 'Etc/GMT+5', - ], - }, - { - value: 'Eastern Standard Time', - abbr: 'EST', - offset: -5, - isdst: false, - text: '(UTC-05:00) Eastern Time (US & Canada)', - utc: [ - 'America/Detroit', - 'America/Havana', - 'America/Indiana/Petersburg', - 'America/Indiana/Vincennes', - 'America/Indiana/Winamac', - 'America/Iqaluit', - 'America/Kentucky/Monticello', - 'America/Louisville', - 'America/Montreal', - 'America/Nassau', - 'America/New_York', - 'America/Nipigon', - 'America/Pangnirtung', - 'America/Port-au-Prince', - 'America/Thunder_Bay', - 'America/Toronto', - ], - }, - { - value: 'Eastern Daylight Time', - abbr: 'EDT', - offset: -4, - isdst: true, - text: '(UTC-04:00) Eastern Daylight Time (US & Canada)', - utc: [ - 'America/Detroit', - 'America/Havana', - 'America/Indiana/Petersburg', - 'America/Indiana/Vincennes', - 'America/Indiana/Winamac', - 'America/Iqaluit', - 'America/Kentucky/Monticello', - 'America/Louisville', - 'America/Montreal', - 'America/Nassau', - 'America/New_York', - 'America/Nipigon', - 'America/Pangnirtung', - 'America/Port-au-Prince', - 'America/Thunder_Bay', - 'America/Toronto', - ], - }, - { - value: 'US Eastern Standard Time', - abbr: 'UEDT', - offset: -5, - isdst: false, - text: '(UTC-05:00) Indiana (East)', - utc: ['America/Indiana/Marengo', 'America/Indiana/Vevay', 'America/Indianapolis'], - }, - { - value: 'Venezuela Standard Time', - abbr: 'VST', - offset: -4.5, - isdst: false, - text: '(UTC-04:30) Caracas', - utc: ['America/Caracas'], - }, - { - value: 'Paraguay Standard Time', - abbr: 'PYT', - offset: -4, - isdst: false, - text: '(UTC-04:00) Asuncion', - utc: ['America/Asuncion'], - }, - { - value: 'Atlantic Standard Time', - abbr: 'ADT', - offset: -3, - isdst: true, - text: '(UTC-04:00) Atlantic Time (Canada)', - utc: [ - 'America/Glace_Bay', - 'America/Goose_Bay', - 'America/Halifax', - 'America/Moncton', - 'America/Thule', - 'Atlantic/Bermuda', - ], - }, - { - value: 'Central Brazilian Standard Time', - abbr: 'CBST', - offset: -4, - isdst: false, - text: '(UTC-04:00) Cuiaba', - utc: ['America/Campo_Grande', 'America/Cuiaba'], - }, - { - value: 'SA Western Standard Time', - abbr: 'SWST', - offset: -4, - isdst: false, - text: '(UTC-04:00) Georgetown, La Paz, Manaus, San Juan', - utc: [ - 'America/Anguilla', - 'America/Antigua', - 'America/Aruba', - 'America/Barbados', - 'America/Blanc-Sablon', - 'America/Boa_Vista', - 'America/Curacao', - 'America/Dominica', - 'America/Grand_Turk', - 'America/Grenada', - 'America/Guadeloupe', - 'America/Guyana', - 'America/Kralendijk', - 'America/La_Paz', - 'America/Lower_Princes', - 'America/Manaus', - 'America/Marigot', - 'America/Martinique', - 'America/Montserrat', - 'America/Port_of_Spain', - 'America/Porto_Velho', - 'America/Puerto_Rico', - 'America/Santo_Domingo', - 'America/St_Barthelemy', - 'America/St_Kitts', - 'America/St_Lucia', - 'America/St_Thomas', - 'America/St_Vincent', - 'America/Tortola', - 'Etc/GMT+4', - ], - }, - { - value: 'Pacific SA Standard Time', - abbr: 'PSST', - offset: -4, - isdst: false, - text: '(UTC-04:00) Santiago', - utc: ['America/Santiago', 'Antarctica/Palmer'], - }, - { - value: 'Newfoundland Standard Time', - abbr: 'NDT', - offset: -2.5, - isdst: true, - text: '(UTC-03:30) Newfoundland', - utc: ['America/St_Johns'], - }, - { - value: 'E. South America Standard Time', - abbr: 'ESAST', - offset: -3, - isdst: false, - text: '(UTC-03:00) Brasilia', - utc: ['America/Sao_Paulo'], - }, - { - value: 'Argentina Standard Time', - abbr: 'AST', - offset: -3, - isdst: false, - text: '(UTC-03:00) Buenos Aires', - utc: [ - 'America/Argentina/La_Rioja', - 'America/Argentina/Rio_Gallegos', - 'America/Argentina/Salta', - 'America/Argentina/San_Juan', - 'America/Argentina/San_Luis', - 'America/Argentina/Tucuman', - 'America/Argentina/Ushuaia', - 'America/Buenos_Aires', - 'America/Catamarca', - 'America/Cordoba', - 'America/Jujuy', - 'America/Mendoza', - ], - }, - { - value: 'SA Eastern Standard Time', - abbr: 'SEST', - offset: -3, - isdst: false, - text: '(UTC-03:00) Cayenne, Fortaleza', - utc: [ - 'America/Araguaina', - 'America/Belem', - 'America/Cayenne', - 'America/Fortaleza', - 'America/Maceio', - 'America/Paramaribo', - 'America/Recife', - 'America/Santarem', - 'Antarctica/Rothera', - 'Atlantic/Stanley', - 'Etc/GMT+3', - ], - }, - { - value: 'Greenland Standard Time', - abbr: 'GDT', - offset: -3, - isdst: true, - text: '(UTC-03:00) Greenland', - utc: ['America/Godthab'], - }, - { - value: 'Montevideo Standard Time', - abbr: 'MST', - offset: -3, - isdst: false, - text: '(UTC-03:00) Montevideo', - utc: ['America/Montevideo'], - }, - { - value: 'Bahia Standard Time', - abbr: 'BST', - offset: -3, - isdst: false, - text: '(UTC-03:00) Salvador', - utc: ['America/Bahia'], - }, - { - value: 'UTC-02', - abbr: 'U', - offset: -2, - isdst: false, - text: '(UTC-02:00) Coordinated Universal Time-02', - utc: ['America/Noronha', 'Atlantic/South_Georgia', 'Etc/GMT+2'], - }, - { - value: 'Mid-Atlantic Standard Time', - abbr: 'MDT', - offset: -1, - isdst: true, - text: '(UTC-02:00) Mid-Atlantic - Old', - utc: [], - }, - { - value: 'Azores Standard Time', - abbr: 'ADT', - offset: 0, - isdst: true, - text: '(UTC-01:00) Azores', - utc: ['America/Scoresbysund', 'Atlantic/Azores'], - }, - { - value: 'Cape Verde Standard Time', - abbr: 'CVST', - offset: -1, - isdst: false, - text: '(UTC-01:00) Cape Verde Is.', - utc: ['Atlantic/Cape_Verde', 'Etc/GMT+1'], - }, - { - value: 'Morocco Standard Time', - abbr: 'MDT', - offset: 1, - isdst: true, - text: '(UTC) Casablanca', - utc: ['Africa/Casablanca', 'Africa/El_Aaiun'], - }, - { - value: 'UTC', - abbr: 'UTC', - offset: 0, - isdst: false, - text: '(UTC) Coordinated Universal Time', - utc: ['America/Danmarkshavn', 'Etc/GMT'], - }, - { - value: 'GMT Standard Time', - abbr: 'GMT', - offset: 0, - isdst: false, - text: '(UTC) Edinburgh, London', - utc: ['Europe/Isle_of_Man', 'Europe/Guernsey', 'Europe/Jersey', 'Europe/London'], - }, - { - value: 'British Summer Time', - abbr: 'BST', - offset: 1, - isdst: true, - text: '(UTC+01:00) Edinburgh, London', - utc: ['Europe/Isle_of_Man', 'Europe/Guernsey', 'Europe/Jersey', 'Europe/London'], - }, - { - value: 'GMT Standard Time', - abbr: 'GDT', - offset: 1, - isdst: true, - text: '(UTC) Dublin, Lisbon', - utc: [ - 'Atlantic/Canary', - 'Atlantic/Faeroe', - 'Atlantic/Madeira', - 'Europe/Dublin', - 'Europe/Lisbon', - ], - }, - { - value: 'Greenwich Standard Time', - abbr: 'GST', - offset: 0, - isdst: false, - text: '(UTC) Monrovia, Reykjavik', - utc: [ - 'Africa/Abidjan', - 'Africa/Accra', - 'Africa/Bamako', - 'Africa/Banjul', - 'Africa/Bissau', - 'Africa/Conakry', - 'Africa/Dakar', - 'Africa/Freetown', - 'Africa/Lome', - 'Africa/Monrovia', - 'Africa/Nouakchott', - 'Africa/Ouagadougou', - 'Africa/Sao_Tome', - 'Atlantic/Reykjavik', - 'Atlantic/St_Helena', - ], - }, - { - value: 'W. Europe Standard Time', - abbr: 'WEDT', - offset: 2, - isdst: true, - text: '(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna', - utc: [ - 'Arctic/Longyearbyen', - 'Europe/Amsterdam', - 'Europe/Andorra', - 'Europe/Berlin', - 'Europe/Busingen', - 'Europe/Gibraltar', - 'Europe/Luxembourg', - 'Europe/Malta', - 'Europe/Monaco', - 'Europe/Oslo', - 'Europe/Rome', - 'Europe/San_Marino', - 'Europe/Stockholm', - 'Europe/Vaduz', - 'Europe/Vatican', - 'Europe/Vienna', - 'Europe/Zurich', - ], - }, - { - value: 'Central Europe Standard Time', - abbr: 'CEDT', - offset: 2, - isdst: true, - text: '(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague', - utc: [ - 'Europe/Belgrade', - 'Europe/Bratislava', - 'Europe/Budapest', - 'Europe/Ljubljana', - 'Europe/Podgorica', - 'Europe/Prague', - 'Europe/Tirane', - ], - }, - { - value: 'Romance Standard Time', - abbr: 'RDT', - offset: 2, - isdst: true, - text: '(UTC+01:00) Brussels, Copenhagen, Madrid, Paris', - utc: ['Africa/Ceuta', 'Europe/Brussels', 'Europe/Copenhagen', 'Europe/Madrid', 'Europe/Paris'], - }, - { - value: 'Central European Standard Time', - abbr: 'CEDT', - offset: 2, - isdst: true, - text: '(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb', - utc: ['Europe/Sarajevo', 'Europe/Skopje', 'Europe/Warsaw', 'Europe/Zagreb'], - }, - { - value: 'W. Central Africa Standard Time', - abbr: 'WCAST', - offset: 1, - isdst: false, - text: '(UTC+01:00) West Central Africa', - utc: [ - 'Africa/Algiers', - 'Africa/Bangui', - 'Africa/Brazzaville', - 'Africa/Douala', - 'Africa/Kinshasa', - 'Africa/Lagos', - 'Africa/Libreville', - 'Africa/Luanda', - 'Africa/Malabo', - 'Africa/Ndjamena', - 'Africa/Niamey', - 'Africa/Porto-Novo', - 'Africa/Tunis', - 'Etc/GMT-1', - ], - }, - { - value: 'Namibia Standard Time', - abbr: 'NST', - offset: 1, - isdst: false, - text: '(UTC+01:00) Windhoek', - utc: ['Africa/Windhoek'], - }, - { - value: 'GTB Standard Time', - abbr: 'GDT', - offset: 3, - isdst: true, - text: '(UTC+02:00) Athens, Bucharest', - utc: ['Asia/Nicosia', 'Europe/Athens', 'Europe/Bucharest', 'Europe/Chisinau'], - }, - { - value: 'Middle East Standard Time', - abbr: 'MEDT', - offset: 3, - isdst: true, - text: '(UTC+02:00) Beirut', - utc: ['Asia/Beirut'], - }, - { - value: 'Egypt Standard Time', - abbr: 'EST', - offset: 2, - isdst: false, - text: '(UTC+02:00) Cairo', - utc: ['Africa/Cairo'], - }, - { - value: 'Syria Standard Time', - abbr: 'SDT', - offset: 3, - isdst: true, - text: '(UTC+02:00) Damascus', - utc: ['Asia/Damascus'], - }, - { - value: 'E. Europe Standard Time', - abbr: 'EEDT', - offset: 3, - isdst: true, - text: '(UTC+02:00) E. Europe', - utc: [ - 'Asia/Nicosia', - 'Europe/Athens', - 'Europe/Bucharest', - 'Europe/Chisinau', - 'Europe/Helsinki', - 'Europe/Kiev', - 'Europe/Mariehamn', - 'Europe/Nicosia', - 'Europe/Riga', - 'Europe/Sofia', - 'Europe/Tallinn', - 'Europe/Uzhgorod', - 'Europe/Vilnius', - 'Europe/Zaporozhye', - ], - }, - { - value: 'South Africa Standard Time', - abbr: 'SAST', - offset: 2, - isdst: false, - text: '(UTC+02:00) Harare, Pretoria', - utc: [ - 'Africa/Blantyre', - 'Africa/Bujumbura', - 'Africa/Gaborone', - 'Africa/Harare', - 'Africa/Johannesburg', - 'Africa/Kigali', - 'Africa/Lubumbashi', - 'Africa/Lusaka', - 'Africa/Maputo', - 'Africa/Maseru', - 'Africa/Mbabane', - 'Etc/GMT-2', - ], - }, - { - value: 'FLE Standard Time', - abbr: 'FDT', - offset: 3, - isdst: true, - text: '(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius', - utc: [ - 'Europe/Helsinki', - 'Europe/Kiev', - 'Europe/Mariehamn', - 'Europe/Riga', - 'Europe/Sofia', - 'Europe/Tallinn', - 'Europe/Uzhgorod', - 'Europe/Vilnius', - 'Europe/Zaporozhye', - ], - }, - { - value: 'Turkey Standard Time', - abbr: 'TDT', - offset: 3, - isdst: false, - text: '(UTC+03:00) Istanbul', - utc: ['Europe/Istanbul'], - }, - { - value: 'Israel Standard Time', - abbr: 'JDT', - offset: 3, - isdst: true, - text: '(UTC+02:00) Jerusalem', - utc: ['Asia/Jerusalem'], - }, - { - value: 'Libya Standard Time', - abbr: 'LST', - offset: 2, - isdst: false, - text: '(UTC+02:00) Tripoli', - utc: ['Africa/Tripoli'], - }, - { - value: 'Jordan Standard Time', - abbr: 'JST', - offset: 3, - isdst: false, - text: '(UTC+03:00) Amman', - utc: ['Asia/Amman'], - }, - { - value: 'Arabic Standard Time', - abbr: 'AST', - offset: 3, - isdst: false, - text: '(UTC+03:00) Baghdad', - utc: ['Asia/Baghdad'], - }, - { - value: 'Kaliningrad Standard Time', - abbr: 'KST', - offset: 3, - isdst: false, - text: '(UTC+02:00) Kaliningrad', - utc: ['Europe/Kaliningrad'], - }, - { - value: 'Arab Standard Time', - abbr: 'AST', - offset: 3, - isdst: false, - text: '(UTC+03:00) Kuwait, Riyadh', - utc: ['Asia/Aden', 'Asia/Bahrain', 'Asia/Kuwait', 'Asia/Qatar', 'Asia/Riyadh'], - }, - { - value: 'E. Africa Standard Time', - abbr: 'EAST', - offset: 3, - isdst: false, - text: '(UTC+03:00) Nairobi', - utc: [ - 'Africa/Addis_Ababa', - 'Africa/Asmera', - 'Africa/Dar_es_Salaam', - 'Africa/Djibouti', - 'Africa/Juba', - 'Africa/Kampala', - 'Africa/Khartoum', - 'Africa/Mogadishu', - 'Africa/Nairobi', - 'Antarctica/Syowa', - 'Etc/GMT-3', - 'Indian/Antananarivo', - 'Indian/Comoro', - 'Indian/Mayotte', - ], - }, - { - value: 'Moscow Standard Time', - abbr: 'MSK', - offset: 3, - isdst: false, - text: '(UTC+03:00) Moscow, St. Petersburg, Volgograd, Minsk', - utc: ['Europe/Kirov', 'Europe/Moscow', 'Europe/Simferopol', 'Europe/Volgograd', 'Europe/Minsk'], - }, - { - value: 'Samara Time', - abbr: 'SAMT', - offset: 4, - isdst: false, - text: '(UTC+04:00) Samara, Ulyanovsk, Saratov', - utc: ['Europe/Astrakhan', 'Europe/Samara', 'Europe/Ulyanovsk'], - }, - { - value: 'Iran Standard Time', - abbr: 'IDT', - offset: 4.5, - isdst: true, - text: '(UTC+03:30) Tehran', - utc: ['Asia/Tehran'], - }, - { - value: 'Arabian Standard Time', - abbr: 'AST', - offset: 4, - isdst: false, - text: '(UTC+04:00) Abu Dhabi, Muscat', - utc: ['Asia/Dubai', 'Asia/Muscat', 'Etc/GMT-4'], - }, - { - value: 'Azerbaijan Standard Time', - abbr: 'ADT', - offset: 5, - isdst: true, - text: '(UTC+04:00) Baku', - utc: ['Asia/Baku'], - }, - { - value: 'Mauritius Standard Time', - abbr: 'MST', - offset: 4, - isdst: false, - text: '(UTC+04:00) Port Louis', - utc: ['Indian/Mahe', 'Indian/Mauritius', 'Indian/Reunion'], - }, - { - value: 'Georgian Standard Time', - abbr: 'GET', - offset: 4, - isdst: false, - text: '(UTC+04:00) Tbilisi', - utc: ['Asia/Tbilisi'], - }, - { - value: 'Caucasus Standard Time', - abbr: 'CST', - offset: 4, - isdst: false, - text: '(UTC+04:00) Yerevan', - utc: ['Asia/Yerevan'], - }, - { - value: 'Afghanistan Standard Time', - abbr: 'AST', - offset: 4.5, - isdst: false, - text: '(UTC+04:30) Kabul', - utc: ['Asia/Kabul'], - }, - { - value: 'West Asia Standard Time', - abbr: 'WAST', - offset: 5, - isdst: false, - text: '(UTC+05:00) Ashgabat, Tashkent', - utc: [ - 'Antarctica/Mawson', - 'Asia/Aqtau', - 'Asia/Aqtobe', - 'Asia/Ashgabat', - 'Asia/Dushanbe', - 'Asia/Oral', - 'Asia/Samarkand', - 'Asia/Tashkent', - 'Etc/GMT-5', - 'Indian/Kerguelen', - 'Indian/Maldives', - ], - }, - { - value: 'Yekaterinburg Time', - abbr: 'YEKT', - offset: 5, - isdst: false, - text: '(UTC+05:00) Yekaterinburg', - utc: ['Asia/Yekaterinburg'], - }, - { - value: 'Pakistan Standard Time', - abbr: 'PKT', - offset: 5, - isdst: false, - text: '(UTC+05:00) Islamabad, Karachi', - utc: ['Asia/Karachi'], - }, - { - value: 'India Standard Time', - abbr: 'IST', - offset: 5.5, - isdst: false, - text: '(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi', - utc: ['Asia/Kolkata', 'Asia/Calcutta'], - }, - { - value: 'Sri Lanka Standard Time', - abbr: 'SLST', - offset: 5.5, - isdst: false, - text: '(UTC+05:30) Sri Jayawardenepura', - utc: ['Asia/Colombo'], - }, - { - value: 'Nepal Standard Time', - abbr: 'NST', - offset: 5.75, - isdst: false, - text: '(UTC+05:45) Kathmandu', - utc: ['Asia/Kathmandu'], - }, - { - value: 'Central Asia Standard Time', - abbr: 'CAST', - offset: 6, - isdst: false, - text: '(UTC+06:00) Nur-Sultan (Astana)', - utc: [ - 'Antarctica/Vostok', - 'Asia/Almaty', - 'Asia/Bishkek', - 'Asia/Qyzylorda', - 'Asia/Urumqi', - 'Etc/GMT-6', - 'Indian/Chagos', - ], - }, - { - value: 'Bangladesh Standard Time', - abbr: 'BST', - offset: 6, - isdst: false, - text: '(UTC+06:00) Dhaka', - utc: ['Asia/Dhaka', 'Asia/Thimphu'], - }, - { - value: 'Myanmar Standard Time', - abbr: 'MST', - offset: 6.5, - isdst: false, - text: '(UTC+06:30) Yangon (Rangoon)', - utc: ['Asia/Rangoon', 'Indian/Cocos'], - }, - { - value: 'SE Asia Standard Time', - abbr: 'SAST', - offset: 7, - isdst: false, - text: '(UTC+07:00) Bangkok, Hanoi, Jakarta', - utc: [ - 'Antarctica/Davis', - 'Asia/Bangkok', - 'Asia/Hovd', - 'Asia/Jakarta', - 'Asia/Phnom_Penh', - 'Asia/Pontianak', - 'Asia/Saigon', - 'Asia/Vientiane', - 'Etc/GMT-7', - 'Indian/Christmas', - ], - }, - { - value: 'N. Central Asia Standard Time', - abbr: 'NCAST', - offset: 7, - isdst: false, - text: '(UTC+07:00) Novosibirsk', - utc: ['Asia/Novokuznetsk', 'Asia/Novosibirsk', 'Asia/Omsk'], - }, - { - value: 'China Standard Time', - abbr: 'CST', - offset: 8, - isdst: false, - text: '(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi', - utc: ['Asia/Hong_Kong', 'Asia/Macau', 'Asia/Shanghai'], - }, - { - value: 'North Asia Standard Time', - abbr: 'NAST', - offset: 8, - isdst: false, - text: '(UTC+08:00) Krasnoyarsk', - utc: ['Asia/Krasnoyarsk'], - }, - { - value: 'Singapore Standard Time', - abbr: 'MPST', - offset: 8, - isdst: false, - text: '(UTC+08:00) Kuala Lumpur, Singapore', - utc: [ - 'Asia/Brunei', - 'Asia/Kuala_Lumpur', - 'Asia/Kuching', - 'Asia/Makassar', - 'Asia/Manila', - 'Asia/Singapore', - 'Etc/GMT-8', - ], - }, - { - value: 'W. Australia Standard Time', - abbr: 'WAST', - offset: 8, - isdst: false, - text: '(UTC+08:00) Perth', - utc: ['Antarctica/Casey', 'Australia/Perth'], - }, - { - value: 'Taipei Standard Time', - abbr: 'TST', - offset: 8, - isdst: false, - text: '(UTC+08:00) Taipei', - utc: ['Asia/Taipei'], - }, - { - value: 'Ulaanbaatar Standard Time', - abbr: 'UST', - offset: 8, - isdst: false, - text: '(UTC+08:00) Ulaanbaatar', - utc: ['Asia/Choibalsan', 'Asia/Ulaanbaatar'], - }, - { - value: 'North Asia East Standard Time', - abbr: 'NAEST', - offset: 8, - isdst: false, - text: '(UTC+08:00) Irkutsk', - utc: ['Asia/Irkutsk'], - }, - { - value: 'Japan Standard Time', - abbr: 'JST', - offset: 9, - isdst: false, - text: '(UTC+09:00) Osaka, Sapporo, Tokyo', - utc: ['Asia/Dili', 'Asia/Jayapura', 'Asia/Tokyo', 'Etc/GMT-9', 'Pacific/Palau'], - }, - { - value: 'Korea Standard Time', - abbr: 'KST', - offset: 9, - isdst: false, - text: '(UTC+09:00) Seoul', - utc: ['Asia/Pyongyang', 'Asia/Seoul'], - }, - { - value: 'Cen. Australia Standard Time', - abbr: 'CAST', - offset: 9.5, - isdst: false, - text: '(UTC+09:30) Adelaide', - utc: ['Australia/Adelaide', 'Australia/Broken_Hill'], - }, - { - value: 'AUS Central Standard Time', - abbr: 'ACST', - offset: 9.5, - isdst: false, - text: '(UTC+09:30) Darwin', - utc: ['Australia/Darwin'], - }, - { - value: 'E. Australia Standard Time', - abbr: 'EAST', - offset: 10, - isdst: false, - text: '(UTC+10:00) Brisbane', - utc: ['Australia/Brisbane', 'Australia/Lindeman'], - }, - { - value: 'AUS Eastern Standard Time', - abbr: 'AEST', - offset: 10, - isdst: false, - text: '(UTC+10:00) Canberra, Melbourne, Sydney', - utc: ['Australia/Melbourne', 'Australia/Sydney'], - }, - { - value: 'West Pacific Standard Time', - abbr: 'WPST', - offset: 10, - isdst: false, - text: '(UTC+10:00) Guam, Port Moresby', - utc: [ - 'Antarctica/DumontDUrville', - 'Etc/GMT-10', - 'Pacific/Guam', - 'Pacific/Port_Moresby', - 'Pacific/Saipan', - 'Pacific/Truk', - ], - }, - { - value: 'Tasmania Standard Time', - abbr: 'TST', - offset: 10, - isdst: false, - text: '(UTC+10:00) Hobart', - utc: ['Australia/Currie', 'Australia/Hobart'], - }, - { - value: 'Yakutsk Standard Time', - abbr: 'YST', - offset: 9, - isdst: false, - text: '(UTC+09:00) Yakutsk', - utc: ['Asia/Chita', 'Asia/Khandyga', 'Asia/Yakutsk'], - }, - { - value: 'Central Pacific Standard Time', - abbr: 'CPST', - offset: 11, - isdst: false, - text: '(UTC+11:00) Solomon Is., New Caledonia', - utc: [ - 'Antarctica/Macquarie', - 'Etc/GMT-11', - 'Pacific/Efate', - 'Pacific/Guadalcanal', - 'Pacific/Kosrae', - 'Pacific/Noumea', - 'Pacific/Ponape', - ], - }, - { - value: 'Vladivostok Standard Time', - abbr: 'VST', - offset: 11, - isdst: false, - text: '(UTC+11:00) Vladivostok', - utc: ['Asia/Sakhalin', 'Asia/Ust-Nera', 'Asia/Vladivostok'], - }, - { - value: 'New Zealand Standard Time', - abbr: 'NZST', - offset: 12, - isdst: false, - text: '(UTC+12:00) Auckland, Wellington', - utc: ['Antarctica/McMurdo', 'Pacific/Auckland'], - }, - { - value: 'UTC+12', - abbr: 'U', - offset: 12, - isdst: false, - text: '(UTC+12:00) Coordinated Universal Time+12', - utc: [ - 'Etc/GMT-12', - 'Pacific/Funafuti', - 'Pacific/Kwajalein', - 'Pacific/Majuro', - 'Pacific/Nauru', - 'Pacific/Tarawa', - 'Pacific/Wake', - 'Pacific/Wallis', - ], - }, - { - value: 'Fiji Standard Time', - abbr: 'FST', - offset: 12, - isdst: false, - text: '(UTC+12:00) Fiji', - utc: ['Pacific/Fiji'], - }, - { - value: 'Magadan Standard Time', - abbr: 'MST', - offset: 12, - isdst: false, - text: '(UTC+12:00) Magadan', - utc: ['Asia/Anadyr', 'Asia/Kamchatka', 'Asia/Magadan', 'Asia/Srednekolymsk'], - }, - { - value: 'Kamchatka Standard Time', - abbr: 'KDT', - offset: 13, - isdst: true, - text: '(UTC+12:00) Petropavlovsk-Kamchatsky - Old', - utc: ['Asia/Kamchatka'], - }, - { - value: 'Tonga Standard Time', - abbr: 'TST', - offset: 13, - isdst: false, - text: "(UTC+13:00) Nuku'alofa", - utc: ['Etc/GMT-13', 'Pacific/Enderbury', 'Pacific/Fakaofo', 'Pacific/Tongatapu'], - }, - { - value: 'Samoa Standard Time', - abbr: 'SST', - offset: 13, - isdst: false, - text: '(UTC+13:00) Samoa', - utc: ['Pacific/Apia'], - }, -] diff --git a/studio/components/interfaces/Database/Backups/PITRBackupSelection/PITRBackupSelection.tsx b/studio/components/interfaces/Database/Backups/PITRBackupSelection/PITRBackupSelection.tsx deleted file mode 100644 index 0fde50cbc8f..00000000000 --- a/studio/components/interfaces/Database/Backups/PITRBackupSelection/PITRBackupSelection.tsx +++ /dev/null @@ -1,321 +0,0 @@ -import dayjs from 'dayjs' -import Link from 'next/link' -import { FC, FormEvent, useState } from 'react' -import { useRouter } from 'next/router' -import { PermissionAction } from '@supabase/shared-types/out/constants' -import { - IconSearch, - IconInfo, - Input, - Listbox, - Popover, - Button, - Modal, - IconAlertCircle, -} from '@supabase/ui' - -import { post } from 'lib/common/fetch' -import { API_URL, PROJECT_STATUS } from 'lib/constants' -import { useStore, checkPermissions } from 'hooks' -import Loading from 'components/ui/Loading' -import ConfirmationModal from 'components/ui/ConfirmationModal' - -import BackupsError from '../BackupsError' -import BackupsEmpty from '../BackupsEmpty' -import { ALL_TIMEZONES } from './PITRBackupSelection.constants' -import { - getClientTimezone, - getTimezoneOffsetText, - convertTimeStringtoUnixS, -} from './PITRBackupSelection.utils' -import InformationBox from 'components/ui/InformationBox' -import { FormHeader } from 'components/ui/Forms' - -interface Props {} - -const PITRBackupSelection: FC = () => { - const router = useRouter() - const { app, ui, backups } = useStore() - - const projectId = ui.selectedProject?.id ?? -1 - const projectRef = ui.selectedProject?.ref ?? 'default' - - const canTriggerPhysicalBackups = checkPermissions( - PermissionAction.INFRA_EXECUTE, - 'queue_job.restore.prepare' - ) - - const [searchString, setSearchString] = useState('') - const [selectedTimezone, setSelectedTimezone] = useState(getClientTimezone()) - const [showConfirmation, setShowConfirmation] = useState(false) - - const [errors, setErrors] = useState() - const [recoveryPoint, setRecoveryPoint] = useState() - - const { configuration } = backups - - if (backups.isLoading) { - return - } else if (backups.error) { - return - } - - const hasPhysicalBackups = - configuration.physicalBackupData.earliestPhysicalBackupDateUnix !== null && - configuration.physicalBackupData.latestPhysicalBackupDateUnix !== null && - configuration.physicalBackupData.earliestPhysicalBackupDateUnix !== - configuration.physicalBackupData.latestPhysicalBackupDateUnix - - if (!configuration.walg_enabled) { - return ( -
-
- -

- Point in time backups is an Enterprise feature. Reach out to us{' '} - - here - {' '} - if you're interested! -

-
-
- ) - } else if (!hasPhysicalBackups) { - return - } - - const timezoneOptions = - searchString.length > 0 - ? ALL_TIMEZONES.map((option) => option.text).filter((option) => - option.toLowerCase().includes(searchString.toLowerCase()) - ) - : ALL_TIMEZONES.map((option) => option.text) - - const earliestAvailableBackup = dayjs - .unix(configuration.physicalBackupData.earliestPhysicalBackupDateUnix) - .tz(selectedTimezone.utc[0]) - .format('YYYY-MM-DDTHH:mm:ss') - - const latestAvailableBackup = dayjs - .unix(configuration.physicalBackupData.latestPhysicalBackupDateUnix) - .tz(selectedTimezone.utc[0]) - .format('YYYY-MM-DDTHH:mm:ss') - - const onSubmit = (e: FormEvent) => { - e.preventDefault() - - // Validation - if (!recoveryPoint) { - setErrors({ recoveryPoint: 'Please enter a date to recover your project from' }) - } else { - const recoveryTimeTargetUnix = convertTimeStringtoUnixS(recoveryPoint, selectedTimezone) - const { earliestPhysicalBackupDateUnix, latestPhysicalBackupDateUnix } = - configuration.physicalBackupData - - const isOutOfRange = - recoveryTimeTargetUnix < earliestPhysicalBackupDateUnix || - recoveryTimeTargetUnix > latestPhysicalBackupDateUnix - - if (isOutOfRange) { - setErrors({ - recoveryPoint: 'Selected date is out of range for available points of recovery', - }) - } else { - setErrors(undefined) - setShowConfirmation(true) - } - } - } - - const onConfirmRestore = async () => { - if (!recoveryPoint) return - - const recoveryTimeTargetUnix = convertTimeStringtoUnixS(recoveryPoint, selectedTimezone) - const { error } = await post(`${API_URL}/database/${projectRef}/backups/pitr`, { - recovery_time_target_unix: recoveryTimeTargetUnix, - }) - - if (error) { - ui.setNotification({ - error, - category: 'error', - message: `Point in time recovery for project failed`, - }) - setShowConfirmation(false) - } else { - setTimeout(() => { - setShowConfirmation(false) - app.onProjectStatusUpdated(projectId, PROJECT_STATUS.RESTORING) - ui.setNotification({ - category: 'success', - message: `Restoring database back to ${dayjs(recoveryPoint).format( - 'DD MMM YYYY, HH:mm:ss' - )} ( - ${getTimezoneOffsetText(selectedTimezone)})`, - }) - router.push(`/project/${projectRef}`) - }, 3000) - } - } - - return ( - <> - -
- {!canTriggerPhysicalBackups && ( - } - title="You need additional permissions to trigger a scheduled backup" - /> - )} -
-
-
-
-
-

Select timezone

-
- { - const selectedTimezone = ALL_TIMEZONES.find( - (option) => option.text === text - ) - setSelectedTimezone(selectedTimezone) - }} - onBlur={() => setSearchString('')} - > -
- - ) => - setSearchString(e.currentTarget.value) - } - /> -
- {/* Whitespace to shift listbox options down for searchfield */} -
- {timezoneOptions.map((option) => { - return ( - -
{option}
-
- ) - })} - {timezoneOptions.length === 0 && ( - - No timezones found - - )} - -
-
-
-
-

Earliest point of recovery

-
-
- -
-
-
-
-

Latest point of recovery

-
-
- -
-
-
- -
-
-

Recovery point

-

- Select a date and time that you would like to restore your project to -

-
-
- { - setErrors(undefined) - setRecoveryPoint(e.target.value) - }} - /> -
-
- -
- -
-
-
- - -
-
-

- Are you sure you want to restore your database from: -

-

- {dayjs(recoveryPoint).format('DD MMM YYYY, HH:mm:ss')} ( - {getTimezoneOffsetText(selectedTimezone)})? -

-
-

- This will destroy any new data written since this backup was made. -

-
- - } - buttonLabel="Restore" - buttonLoadingLabel="Restoring" - onSelectCancel={() => setShowConfirmation(false)} - onSelectConfirm={onConfirmRestore} - /> -
- - ) -} - -export default PITRBackupSelection diff --git a/studio/components/interfaces/Database/Backups/PITRBackupSelection/PITRBackupSelection.types.ts b/studio/components/interfaces/Database/Backups/PITRBackupSelection/PITRBackupSelection.types.ts deleted file mode 100644 index cd86f6ea2fc..00000000000 --- a/studio/components/interfaces/Database/Backups/PITRBackupSelection/PITRBackupSelection.types.ts +++ /dev/null @@ -1,8 +0,0 @@ -export interface Timezone { - value: string - abbr: string - offset: number - isdst: boolean - text: string - utc: string[] -} diff --git a/studio/components/interfaces/Database/Backups/PITRBackupSelection/PITRBackupSelection.utils.ts b/studio/components/interfaces/Database/Backups/PITRBackupSelection/PITRBackupSelection.utils.ts deleted file mode 100644 index 545340e5e5d..00000000000 --- a/studio/components/interfaces/Database/Backups/PITRBackupSelection/PITRBackupSelection.utils.ts +++ /dev/null @@ -1,27 +0,0 @@ -import dayjs from 'dayjs' -import { ALL_TIMEZONES } from './PITRBackupSelection.constants' -import { Timezone } from './PITRBackupSelection.types' - -export const getClientTimezone = () => { - const defaultTz = dayjs.tz.guess() - const timezone = ALL_TIMEZONES.find((option) => { - if (option.utc.includes(defaultTz)) return option - else return undefined - }) - return timezone -} - -export const getTimezoneOffsetText = (timezone: Timezone) => { - return timezone.text.split(')')[0].slice(1) -} - -export const getTimezoneOffset = (timezone: Timezone) => { - return timezone.text.split(')')[0].slice(4) -} - -export const convertTimeStringtoUnixS = (datetime: string, timezone: Timezone) => { - // Datetime in the format of YYYY-MM-DDTHH:mm:ss (from datetime-local input) - const timezoneOffset = getTimezoneOffset(timezone) - const datetimestringWithTimezone = `${datetime}${timezoneOffset}` - return dayjs(datetimestringWithTimezone).unix() -} diff --git a/studio/components/interfaces/Database/Backups/PITRBackupSelection/index.tsx b/studio/components/interfaces/Database/Backups/PITRBackupSelection/index.tsx deleted file mode 100644 index ff7fdd9db78..00000000000 --- a/studio/components/interfaces/Database/Backups/PITRBackupSelection/index.tsx +++ /dev/null @@ -1,2 +0,0 @@ -import PITRBackupSelection from './PITRBackupSelection' -export default PITRBackupSelection diff --git a/studio/components/interfaces/Database/index.ts b/studio/components/interfaces/Database/index.ts index 2bd42e99171..60141982fab 100644 --- a/studio/components/interfaces/Database/index.ts +++ b/studio/components/interfaces/Database/index.ts @@ -10,7 +10,6 @@ import PublicationsList from './Publications/PublicationsList' import PublicationsTables from './Publications/PublicationsTables' import BackupsList from './Backups/BackupsList' -import PITRBackupSelection from './Backups/PITRBackupSelection' import ConnectionPooling from './Pooling/ConnectionPooling' @@ -29,7 +28,6 @@ export { PublicationsList, PublicationsTables, BackupsList, - PITRBackupSelection, ConnectionPooling, CreateTrigger, DeleteTrigger,