mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-14 03:29:35 +00:00
merge conflict resolve
This commit is contained in:
@@ -8,7 +8,7 @@ module.exports = {
|
||||
debug: false,
|
||||
i18n: {
|
||||
defaultLocale: "en",
|
||||
locales: ["en", "ko", "fr", "pt-BR"],
|
||||
locales: ["en", "ko", "fr", "pt-BR", "pt-PT"],
|
||||
},
|
||||
fallbackLng: {
|
||||
default: ["en"],
|
||||
|
||||
Generated
+60
-45
@@ -13,7 +13,7 @@
|
||||
"@fortawesome/free-regular-svg-icons": "^6.1.1",
|
||||
"@fortawesome/free-solid-svg-icons": "^6.1.2",
|
||||
"@fortawesome/react-fontawesome": "^0.1.19",
|
||||
"@headlessui/react": "^1.6.6",
|
||||
"@headlessui/react": "^1.7.7",
|
||||
"@hookform/resolvers": "^2.9.10",
|
||||
"@octokit/rest": "^19.0.7",
|
||||
"@radix-ui/react-accordion": "^1.1.0",
|
||||
@@ -30,14 +30,14 @@
|
||||
"@radix-ui/react-tabs": "^1.0.2",
|
||||
"@radix-ui/react-toast": "^1.1.2",
|
||||
"@reduxjs/toolkit": "^1.8.3",
|
||||
"@stripe/react-stripe-js": "^1.10.0",
|
||||
"@stripe/react-stripe-js": "^1.16.3",
|
||||
"@stripe/stripe-js": "^1.46.0",
|
||||
"@tanstack/react-query": "^4.23.0",
|
||||
"@types/argon2-browser": "^1.18.1",
|
||||
"add": "^2.0.6",
|
||||
"argon2-browser": "^1.18.0",
|
||||
"axios": "^0.27.2",
|
||||
"axios-auth-refresh": "^3.3.3",
|
||||
"axios-auth-refresh": "^3.3.6",
|
||||
"base64-loader": "^1.0.0",
|
||||
"classnames": "^2.3.1",
|
||||
"cookies": "^0.8.0",
|
||||
@@ -45,13 +45,13 @@
|
||||
"fs": "^0.0.1-security",
|
||||
"gray-matter": "^4.0.3",
|
||||
"http-proxy": "^1.18.1",
|
||||
"i18next": "^22.4.6",
|
||||
"i18next": "^22.4.9",
|
||||
"jspdf": "^2.5.1",
|
||||
"jsrp": "^0.2.4",
|
||||
"markdown-it": "^13.0.1",
|
||||
"next": "^12.3.4",
|
||||
"next-i18next": "^13.0.2",
|
||||
"posthog-js": "^1.34.0",
|
||||
"posthog-js": "^1.39.4",
|
||||
"query-string": "^7.1.3",
|
||||
"react": "^17.0.2",
|
||||
"react-beautiful-dnd": "^13.1.1",
|
||||
@@ -2544,9 +2544,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@headlessui/react": {
|
||||
"version": "1.6.6",
|
||||
"resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.6.6.tgz",
|
||||
"integrity": "sha512-MFJtmj9Xh/hhBMhLccGbBoSk+sk61BlP6sJe4uQcVMtXZhCgGqd2GyIQzzmsdPdTEWGSF434CBi8mnhR6um46Q==",
|
||||
"version": "1.7.7",
|
||||
"resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.7.tgz",
|
||||
"integrity": "sha512-BqDOd/tB9u2tA0T3Z0fn18ktw+KbVwMnkxxsGPIH2hzssrQhKB5n/6StZOyvLYP/FsYtvuXfi9I0YowKPv2c1w==",
|
||||
"dependencies": {
|
||||
"client-only": "^0.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
@@ -3935,9 +3938,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@sentry/types": {
|
||||
"version": "7.15.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.15.0.tgz",
|
||||
"integrity": "sha512-MN9haDRh9ZOsTotoDTHu2BT3sT8Vs1F0alhizUpDyjN2YgBCqR6JV+AbAE1XNHwS2+5zbppch1PwJUVeE58URQ==",
|
||||
"version": "7.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.22.0.tgz",
|
||||
"integrity": "sha512-LhCL+wb1Jch+OesB2CIt6xpfO1Ab6CRvoNYRRzVumWPLns1T3ZJkarYfhbLaOEIb38EIbPgREdxn2AJT560U4Q==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
@@ -6281,14 +6284,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@stripe/react-stripe-js": {
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/@stripe/react-stripe-js/-/react-stripe-js-1.10.0.tgz",
|
||||
"integrity": "sha512-vuIjJUZJ3nyiaGa5z5iyMCzZfGGsgzOOjWjqknbbhkNsewyyginfeky9EZLSz9+iSAsgC9K6MeNOTLKVGcMycQ==",
|
||||
"version": "1.16.3",
|
||||
"resolved": "https://registry.npmjs.org/@stripe/react-stripe-js/-/react-stripe-js-1.16.3.tgz",
|
||||
"integrity": "sha512-gS6UDGEuM92K50pFB3o//EqqPxmaqpC8IrsBda4P4LxeULoO0pBFSHXJ5Ab6uA7G2lyO2bluvSLereh0OH9GrQ==",
|
||||
"dependencies": {
|
||||
"prop-types": "^15.7.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@stripe/stripe-js": "^1.34.0",
|
||||
"@stripe/stripe-js": "^1.44.1",
|
||||
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
|
||||
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
|
||||
}
|
||||
@@ -8157,9 +8160,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/axios-auth-refresh": {
|
||||
"version": "3.3.3",
|
||||
"resolved": "https://registry.npmjs.org/axios-auth-refresh/-/axios-auth-refresh-3.3.3.tgz",
|
||||
"integrity": "sha512-2IbDhJ/h6ddNBBnnzn1VFK/qx17pE9aVqiafB8rx5LVHsJ1HtFpUGkbXY7PzTG+8P9HJWcyA3fNZl9BikSuilg==",
|
||||
"version": "3.3.6",
|
||||
"resolved": "https://registry.npmjs.org/axios-auth-refresh/-/axios-auth-refresh-3.3.6.tgz",
|
||||
"integrity": "sha512-2CeBUce/SxIfFxow5/n8vApJ97yYF6qoV4gh1UrswT7aEOnlOdBLxxyhOI4IaxGs6BY0l8YujU2jlc4aCmK17Q==",
|
||||
"peerDependencies": {
|
||||
"axios": ">= 0.18 < 0.19.0 || >= 0.19.1"
|
||||
}
|
||||
@@ -9205,6 +9208,11 @@
|
||||
"@colors/colors": "1.5.0"
|
||||
}
|
||||
},
|
||||
"node_modules/client-only": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
|
||||
"integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
|
||||
},
|
||||
"node_modules/cliui": {
|
||||
"version": "7.0.4",
|
||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
|
||||
@@ -13224,9 +13232,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/i18next": {
|
||||
"version": "22.4.6",
|
||||
"resolved": "https://registry.npmjs.org/i18next/-/i18next-22.4.6.tgz",
|
||||
"integrity": "sha512-9Tm1ezxWyzV+306CIDMBbYBitC1jedQyYuuLtIv7oxjp2ohh8eyxP9xytIf+2bbQfhH784IQKPSYp+Zq9+YSbw==",
|
||||
"version": "22.4.9",
|
||||
"resolved": "https://registry.npmjs.org/i18next/-/i18next-22.4.9.tgz",
|
||||
"integrity": "sha512-8gWMmUz460KJDQp/ob3MNUX84cVuDRY9PLFPnV8d+Qezz/6dkjxwOaH70xjrCNDO+JrUL25iXfAIN9wUkInNZw==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "individual",
|
||||
@@ -17079,11 +17087,11 @@
|
||||
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
|
||||
},
|
||||
"node_modules/posthog-js": {
|
||||
"version": "1.34.0",
|
||||
"resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.34.0.tgz",
|
||||
"integrity": "sha512-HkRwwzdz31N5ykQIO3SIkSS8nwhdqqnuDZ/qltitX4FhxrV9/tSRavEXz0YLvioOXeNVmQWtsN3krKajErwkwg==",
|
||||
"version": "1.39.4",
|
||||
"resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.39.4.tgz",
|
||||
"integrity": "sha512-Elpf1gwyuObueXi89iH+9pP+WhpkiivP8Qwej4RzOLwSTa7Floaa4rgAw7rnCnX1PtRoJ3F0kqb6q9T+aZjRiA==",
|
||||
"dependencies": {
|
||||
"@sentry/types": "^7.2.0",
|
||||
"@sentry/types": "7.22.0",
|
||||
"fflate": "^0.4.1",
|
||||
"rrweb-snapshot": "^1.1.14"
|
||||
}
|
||||
@@ -23946,10 +23954,12 @@
|
||||
}
|
||||
},
|
||||
"@headlessui/react": {
|
||||
"version": "1.6.6",
|
||||
"resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.6.6.tgz",
|
||||
"integrity": "sha512-MFJtmj9Xh/hhBMhLccGbBoSk+sk61BlP6sJe4uQcVMtXZhCgGqd2GyIQzzmsdPdTEWGSF434CBi8mnhR6um46Q==",
|
||||
"requires": {}
|
||||
"version": "1.7.7",
|
||||
"resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.7.tgz",
|
||||
"integrity": "sha512-BqDOd/tB9u2tA0T3Z0fn18ktw+KbVwMnkxxsGPIH2hzssrQhKB5n/6StZOyvLYP/FsYtvuXfi9I0YowKPv2c1w==",
|
||||
"requires": {
|
||||
"client-only": "^0.0.1"
|
||||
}
|
||||
},
|
||||
"@hookform/resolvers": {
|
||||
"version": "2.9.10",
|
||||
@@ -24987,9 +24997,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"@sentry/types": {
|
||||
"version": "7.15.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.15.0.tgz",
|
||||
"integrity": "sha512-MN9haDRh9ZOsTotoDTHu2BT3sT8Vs1F0alhizUpDyjN2YgBCqR6JV+AbAE1XNHwS2+5zbppch1PwJUVeE58URQ=="
|
||||
"version": "7.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.22.0.tgz",
|
||||
"integrity": "sha512-LhCL+wb1Jch+OesB2CIt6xpfO1Ab6CRvoNYRRzVumWPLns1T3ZJkarYfhbLaOEIb38EIbPgREdxn2AJT560U4Q=="
|
||||
},
|
||||
"@sinclair/typebox": {
|
||||
"version": "0.24.51",
|
||||
@@ -26659,9 +26669,9 @@
|
||||
}
|
||||
},
|
||||
"@stripe/react-stripe-js": {
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/@stripe/react-stripe-js/-/react-stripe-js-1.10.0.tgz",
|
||||
"integrity": "sha512-vuIjJUZJ3nyiaGa5z5iyMCzZfGGsgzOOjWjqknbbhkNsewyyginfeky9EZLSz9+iSAsgC9K6MeNOTLKVGcMycQ==",
|
||||
"version": "1.16.3",
|
||||
"resolved": "https://registry.npmjs.org/@stripe/react-stripe-js/-/react-stripe-js-1.16.3.tgz",
|
||||
"integrity": "sha512-gS6UDGEuM92K50pFB3o//EqqPxmaqpC8IrsBda4P4LxeULoO0pBFSHXJ5Ab6uA7G2lyO2bluvSLereh0OH9GrQ==",
|
||||
"requires": {
|
||||
"prop-types": "^15.7.2"
|
||||
}
|
||||
@@ -28115,9 +28125,9 @@
|
||||
}
|
||||
},
|
||||
"axios-auth-refresh": {
|
||||
"version": "3.3.3",
|
||||
"resolved": "https://registry.npmjs.org/axios-auth-refresh/-/axios-auth-refresh-3.3.3.tgz",
|
||||
"integrity": "sha512-2IbDhJ/h6ddNBBnnzn1VFK/qx17pE9aVqiafB8rx5LVHsJ1HtFpUGkbXY7PzTG+8P9HJWcyA3fNZl9BikSuilg==",
|
||||
"version": "3.3.6",
|
||||
"resolved": "https://registry.npmjs.org/axios-auth-refresh/-/axios-auth-refresh-3.3.6.tgz",
|
||||
"integrity": "sha512-2CeBUce/SxIfFxow5/n8vApJ97yYF6qoV4gh1UrswT7aEOnlOdBLxxyhOI4IaxGs6BY0l8YujU2jlc4aCmK17Q==",
|
||||
"requires": {}
|
||||
},
|
||||
"axobject-query": {
|
||||
@@ -28888,6 +28898,11 @@
|
||||
"string-width": "^4.2.0"
|
||||
}
|
||||
},
|
||||
"client-only": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
|
||||
"integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
|
||||
},
|
||||
"cliui": {
|
||||
"version": "7.0.4",
|
||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
|
||||
@@ -31990,9 +32005,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"i18next": {
|
||||
"version": "22.4.6",
|
||||
"resolved": "https://registry.npmjs.org/i18next/-/i18next-22.4.6.tgz",
|
||||
"integrity": "sha512-9Tm1ezxWyzV+306CIDMBbYBitC1jedQyYuuLtIv7oxjp2ohh8eyxP9xytIf+2bbQfhH784IQKPSYp+Zq9+YSbw==",
|
||||
"version": "22.4.9",
|
||||
"resolved": "https://registry.npmjs.org/i18next/-/i18next-22.4.9.tgz",
|
||||
"integrity": "sha512-8gWMmUz460KJDQp/ob3MNUX84cVuDRY9PLFPnV8d+Qezz/6dkjxwOaH70xjrCNDO+JrUL25iXfAIN9wUkInNZw==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.20.6"
|
||||
}
|
||||
@@ -34690,11 +34705,11 @@
|
||||
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
|
||||
},
|
||||
"posthog-js": {
|
||||
"version": "1.34.0",
|
||||
"resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.34.0.tgz",
|
||||
"integrity": "sha512-HkRwwzdz31N5ykQIO3SIkSS8nwhdqqnuDZ/qltitX4FhxrV9/tSRavEXz0YLvioOXeNVmQWtsN3krKajErwkwg==",
|
||||
"version": "1.39.4",
|
||||
"resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.39.4.tgz",
|
||||
"integrity": "sha512-Elpf1gwyuObueXi89iH+9pP+WhpkiivP8Qwej4RzOLwSTa7Floaa4rgAw7rnCnX1PtRoJ3F0kqb6q9T+aZjRiA==",
|
||||
"requires": {
|
||||
"@sentry/types": "^7.2.0",
|
||||
"@sentry/types": "7.22.0",
|
||||
"fflate": "^0.4.1",
|
||||
"rrweb-snapshot": "^1.1.14"
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"@fortawesome/free-regular-svg-icons": "^6.1.1",
|
||||
"@fortawesome/free-solid-svg-icons": "^6.1.2",
|
||||
"@fortawesome/react-fontawesome": "^0.1.19",
|
||||
"@headlessui/react": "^1.6.6",
|
||||
"@headlessui/react": "^1.7.7",
|
||||
"@hookform/resolvers": "^2.9.10",
|
||||
"@octokit/rest": "^19.0.7",
|
||||
"@radix-ui/react-accordion": "^1.1.0",
|
||||
@@ -37,14 +37,14 @@
|
||||
"@radix-ui/react-tabs": "^1.0.2",
|
||||
"@radix-ui/react-toast": "^1.1.2",
|
||||
"@reduxjs/toolkit": "^1.8.3",
|
||||
"@stripe/react-stripe-js": "^1.10.0",
|
||||
"@stripe/react-stripe-js": "^1.16.3",
|
||||
"@stripe/stripe-js": "^1.46.0",
|
||||
"@types/argon2-browser": "^1.18.1",
|
||||
"@tanstack/react-query": "^4.23.0",
|
||||
"add": "^2.0.6",
|
||||
"argon2-browser": "^1.18.0",
|
||||
"axios": "^0.27.2",
|
||||
"axios-auth-refresh": "^3.3.3",
|
||||
"axios-auth-refresh": "^3.3.6",
|
||||
"base64-loader": "^1.0.0",
|
||||
"classnames": "^2.3.1",
|
||||
"cookies": "^0.8.0",
|
||||
@@ -52,13 +52,13 @@
|
||||
"fs": "^0.0.1-security",
|
||||
"gray-matter": "^4.0.3",
|
||||
"http-proxy": "^1.18.1",
|
||||
"i18next": "^22.4.6",
|
||||
"i18next": "^22.4.9",
|
||||
"jspdf": "^2.5.1",
|
||||
"jsrp": "^0.2.4",
|
||||
"markdown-it": "^13.0.1",
|
||||
"next": "^12.3.4",
|
||||
"next-i18next": "^13.0.2",
|
||||
"posthog-js": "^1.34.0",
|
||||
"posthog-js": "^1.39.4",
|
||||
"query-string": "^7.1.3",
|
||||
"react": "^17.0.2",
|
||||
"react-beautiful-dnd": "^13.1.1",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"title": "Activity Logs",
|
||||
"title": "Audit Logs",
|
||||
"subtitle": "Event history for this Infisical project.",
|
||||
"event": {
|
||||
"readSecrets": "Secrets Viewed",
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
"project-id": "Project ID",
|
||||
"save-changes": "Save Changes",
|
||||
"saved": "Saved",
|
||||
"drop-zone": "Drag and drop a .env or .yml file here.",
|
||||
"drop-zone-keys": "Drag and drop a .env or .yml file here to add more secrets.",
|
||||
"drop-zone": "Drag and drop a .env, .json, or .yml file here.",
|
||||
"drop-zone-keys": "Drag and drop a .env, .json, or .yml file here to add more secrets.",
|
||||
"role": "Role",
|
||||
"role_admin": "admin",
|
||||
"display-name": "Display Name",
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"title": "Registo de Atividade",
|
||||
"subtitle": "Histórico de eventos para este projeto Infisical.",
|
||||
"event": {
|
||||
"readSecrets": "Segredos Vistos",
|
||||
"updateSecrets": "Segredos Atualizados",
|
||||
"addSecrets": "Segredos Adicionados",
|
||||
"deleteSecrets": "Segredos Apagados"
|
||||
},
|
||||
"ip-address": "Endereço IP"
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"title": "Utilização & Faturação",
|
||||
"description": "Vê e faz a gestão da subscrição da tua organização aqui",
|
||||
"subscription": "Subscrição",
|
||||
"starter": {
|
||||
"name": "Base",
|
||||
"price-explanation": "Até 5 membros de equipa",
|
||||
"text": "Faz a gestão a qualquer projeto com 5 membros gratuitamente!",
|
||||
"subtext": "$5 por membro adicional / mês."
|
||||
},
|
||||
"professional": {
|
||||
"name": "Profissional",
|
||||
"price-explanation": "/membro/mês",
|
||||
"subtext": "Inclui projetos e membros ilimitados.",
|
||||
"text": "Acompanha a gestão de chaves à medida que cresces."
|
||||
},
|
||||
"enterprise": {
|
||||
"name": "Empresarial",
|
||||
"text": "Acompanha a gestão de chaves à medida que cresces."
|
||||
},
|
||||
"current-usage": "Utilização atual",
|
||||
"free": "Grátis",
|
||||
"downgrade": "Reduzir",
|
||||
"upgrade": "Melhorar",
|
||||
"learn-more": "Saber mais",
|
||||
"custom-pricing": "Preço personalizado",
|
||||
"schedule-demo": "Marca uma demonstração"
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"head-title": "{{title}} | Infisical",
|
||||
"error_project-already-exists": "Já existe um projeto com este nome.",
|
||||
"no-mobile": "Para usar o Infisical, inicia a sessão através dum dispositivo com resolução maior.",
|
||||
"email": "E-mail",
|
||||
"password": "Palavra-passe",
|
||||
"first-name": "Nome",
|
||||
"last-name": "Apelido",
|
||||
"logout": "Terminar sessão",
|
||||
"validate-required": "Por favor, insire o teu {{name}}",
|
||||
"maintenance-alert": "Estamos com pequenas dificuldades técnicas. Estamos a solucioná-las agora. Por favor, volte dentro de alguns minutos.",
|
||||
"click-to-copy": "Clica para copiar",
|
||||
"project-id": "ID do Projeto",
|
||||
"save-changes": "Guardar alterações",
|
||||
"saved": "Guardado",
|
||||
"drop-zone": "Arrasta e solta um ficheiro .env ou .yml aqui.",
|
||||
"drop-zone-keys": "Arrasta e solta um ficheiro .env ou .yml aqui para adicionar mais segredos.",
|
||||
"role": "Função",
|
||||
"role_admin": "Administrador",
|
||||
"display-name": "Nome de exibição",
|
||||
"environment": "Ambiente",
|
||||
"expired-in": "Expira em",
|
||||
"language": "Idioma",
|
||||
"search": "Pequisar...",
|
||||
"note": "Note",
|
||||
"view-more": "Ver mais",
|
||||
"end-of-history": "Fim do histórico",
|
||||
"select-event": "Escolhe um evento",
|
||||
"event": "Evento",
|
||||
"user": "Utilizador",
|
||||
"source": "Fonte",
|
||||
"time": "Data/Hora",
|
||||
"timestamp": "Timestamp"
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"title": "Segredos",
|
||||
"og-title": "Faz a gestão os teus ficheiros .env em segundos",
|
||||
"og-description": "Infisical é uma plataforma simples e criptografada de ponta a ponta que permite que as equipas sincronizem e façam a gestão dos seus ficheiros .env.",
|
||||
"search-keys": "Pesquisar chaves...",
|
||||
"add-key": "Adicionar chave",
|
||||
"personal": "Pessoal",
|
||||
"personal-description": "As chaves pessoais são visíveis apenas para si",
|
||||
"shared": "Partilhado",
|
||||
"shared-description": "As chaves partilhadas são visíveis para toda tua equipa",
|
||||
"make-shared": "Partilhar",
|
||||
"make-personal": "Tornar pessoal",
|
||||
"add-secret": "Adicionar um novo segredo",
|
||||
"check-docs": {
|
||||
"button": "Verificar documentação",
|
||||
"title": "Bom trabalho!",
|
||||
"line1": "Parabéns por adicionar mais segredos.",
|
||||
"line2": "Veja como conectá-los à tua codebase."
|
||||
},
|
||||
"sidebar": {
|
||||
"secret": "Segredo",
|
||||
"key": "Chave",
|
||||
"value": "Valor",
|
||||
"override": "Substitui o valor por um valor pessoal",
|
||||
"version-history": "Histórico da versões",
|
||||
"comments": "Comentários e Notas",
|
||||
"personal-explanation": "Este segredo é pessoal. Não é partilhado com nenhum dos seus colegas de equipa.",
|
||||
"generate-random-hex": "Criar código HEX aleatório",
|
||||
"digits": "digitos",
|
||||
"delete-key-dialog": {
|
||||
"title": "Apagar chave",
|
||||
"confirm-delete-message": "Tens a certeza que queres apagar esta chave? Esta ação não pode ser desfeita."
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"title": "Integrações do Projeto",
|
||||
"description": "Faz a gestão das tuas integrações do Infisical com serviços de terceiros.",
|
||||
"no-integrations1": "Ainda não tens nenhuma integração definida. Quando o fizer, aparecerá aqui.",
|
||||
"no-integrations2": "Para começar, clica em qualquer uma das opções abaixo. São necessários 5 cliques para configurar.",
|
||||
"available": "Integrações de Plataforma & Cloud",
|
||||
"available-text1": "Clica na integração que pretende ligar. Isto irá permitir que as tuas variáveis de ambiente fluam automaticamente para os serviços de terceiros selecionados.",
|
||||
"available-text2": "Nota: durante uma integração com o Heroku, por razões de segurança, não é possível manter a criptografia de ponta a ponta. Teoricamente, isto permite que o Infisical decifre as suas variáveis de ambiente. Na prática, podemos assegurar-lhe que isto nunca será feito, e permite-nos proteger os teus segredos de atores mal-intencionados online. O serviço Infisical mantém-se sempre criptografado de ponta a ponta. Para qualquer dúvida, contacte [email protected].",
|
||||
"cloud-integrations": "Integrações de Cloud",
|
||||
"framework-integrations": "Integrações de Framework",
|
||||
"click-to-start": "Clica numa integração para começar a sincronizar segredos.",
|
||||
"click-to-setup": "Clique num framework para obter as instruções de configuração.",
|
||||
"grant-access-to-secrets": "Conceda acesso ao Infisical aos teus segredos",
|
||||
"why-infisical-needs-access": "A maioria das integrações de cloud requerem que o Infisical possa decifrar os teus segredos para que possam ser encaminhados.",
|
||||
"grant-access-button": "Conceder acesso"
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"title": "Iniciar sessão",
|
||||
"og-title": "Iniciar sessão na Infisical",
|
||||
"og-description": "Infisical é uma plataforma simples e criptografada que permite às equipas sincronizar e fazer a gestão dos seus ficheiros .env.",
|
||||
"login": "Iniciar sessão",
|
||||
"need-account": "Precisa de uma conta Infisical?",
|
||||
"create-account": "Regista-te",
|
||||
"forgot-password": "Esqueceste da tua palavra-passe?",
|
||||
"error-login": "Credenciais erradas."
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"title": "Registar",
|
||||
"og-title": "Substitui os ficheiros .env com 1 linha de código. Regista-te na Infisical em 3 minutos.",
|
||||
"og-description": "Infisical é uma plataforma simples e encriptada de ponta a ponta que permite às equipas sincronizar e gerir chaves API e variáveis de ambiente. Funciona com Node.js, Next.js, Gatsby, Nest.js...",
|
||||
"signup": "Registar",
|
||||
"already-have-account": "Já tens uma conta? Inicia a sessão",
|
||||
"forgot-password": "Esqueceste da palavra-passe?",
|
||||
"verify": "Verificar",
|
||||
"step1-start": "Vamos começar",
|
||||
"step1-privacy": "Ao criares uma conta, concorda com os nossos Termos e leu a Política de Privacidade.",
|
||||
"step1-submit": "Começar",
|
||||
"step2-message": "Enviámos um código de verificação para",
|
||||
"step2-code-error": "Epá! O seu código está errado. Tentativas restantes:",
|
||||
"step2-resend-alert": "Não vês o código?",
|
||||
"step2-resend-submit": "Reenviar",
|
||||
"step2-resend-progress": "A reenviar...",
|
||||
"step2-spam-alert": "Não te esqueças de verificar a tua caixa de spam.",
|
||||
"step3-message": "Tá quase!",
|
||||
"step4-message": "Guarda o teu Kit de Emergência",
|
||||
"step4-description1": "Se perderes o acesso a tua conta, o teu Kit de Emergência é a única forma de iniciares a sessão.",
|
||||
"step4-description2": "Recomendamos que o descarregues e guardes num local seguro.",
|
||||
"step4-description3": "Contém a sua Chave Secreta que não podemos aceder nem recuperar para si se a perder.",
|
||||
"step4-download": "Descarregar PDF",
|
||||
"step5-send-invites": "Enviar Convites",
|
||||
"step5-invite-team": "Convida a tua equipa",
|
||||
"step5-subtitle": "A Infisical é pensada para ser usada com a tua equipa. Convida-os para testar.",
|
||||
"step5-skip": "Saltar"
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"support": {
|
||||
"slack": "Partipa do Slack",
|
||||
"docs": "Leia a documentação",
|
||||
"issue": "Abra um issue no Github",
|
||||
"email": "Envia-nos um email"
|
||||
},
|
||||
"user": {
|
||||
"signed-in-as": "SESSÃO INICIADA COMO",
|
||||
"current-organization": "ORGANIZAÇÃO ATUAL",
|
||||
"usage-billing": "Utilização e Faturação",
|
||||
"invite": "Convida Membros",
|
||||
"other-organizations": "OUTRA ORGANIZAÇÃO"
|
||||
},
|
||||
"menu": {
|
||||
"project": "PROJETO",
|
||||
"secrets": "Segredos",
|
||||
"members": "Membros",
|
||||
"integrations": "Integrações",
|
||||
"project-settings": "Definições do Projeto"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"incident-contacts": "Contactos de Emergência",
|
||||
"incident-contacts-description": "Estes contactos serão notificados no caso improvável de um incidente grave.",
|
||||
"no-incident-contacts": "Nenhum contacto de emergência encontrado.",
|
||||
"add-contact": "Adicionar Contacto",
|
||||
"add-dialog": {
|
||||
"title": "Adicionar um Contacto de Emergência",
|
||||
"description": "Este contacto será notificado no caso improvável de um incidente grave.",
|
||||
"add-incident": "Adicionar Contacto de Emergência"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"add-member": "Adicionar Membro",
|
||||
"org-members": "Membros da Organização",
|
||||
"org-members-description": "Faz a gestão dos membros da tua organização. Estes utilizadores poderão depois ser organizados em projetos.",
|
||||
"search-members": "Procurar membros...",
|
||||
"add-dialog": {
|
||||
"add-member-to-project": "Adicionar um membro ao teu projeto",
|
||||
"already-all-invited": "Todos os utilizadores da tua organização já foram convidados.",
|
||||
"add-user-org-first": "Adicione mais utilizadores à organização primeiro.",
|
||||
"user-will-email": "O utilizador receberá um e-mail com as instruções.",
|
||||
"looking-add": "<0>Se estás à procura de adicionar utilizadores à tua organização,</0><1>clica aqui</1>",
|
||||
"add-user-to-org": "Adicionar Utilizadores à Organização"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"password": "Palavra-passe",
|
||||
"change": "Alterar palavra-passe",
|
||||
"current": "Palavra-passe atual",
|
||||
"current-wrong": "A palavra-passe atual pode estar errada",
|
||||
"new": "Nova palavra-passe",
|
||||
"validate-base": "A palavra-passe deve ter ao menos:",
|
||||
"validate-length": "14 caracteres",
|
||||
"validate-case": "1 letra minúscula",
|
||||
"validate-number": "1 número"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"service-tokens": "Tokens de Serviço",
|
||||
"service-tokens-description": "Cada token de serviço é específico para si, um determinado projeto e um determinado ambiente dentro deste projeto.",
|
||||
"add-new": "Adicionar Novo Token",
|
||||
"add-dialog" : {
|
||||
"title": "Adicionar um token de serviço para {{target}}",
|
||||
"description": "Quando um token é criado, só poderá vê-lo uma vez antes dele desaparecer. Certifique-se de o guardar num local seguro.",
|
||||
"name": "Nome do Token de Serviço",
|
||||
"add": "Adicionar Token de Serviço",
|
||||
"copy-service-token": "Copia o seu token de serviço",
|
||||
"copy-service-token-description": "Uma vez que fechar esta janela, nunca mais irás ver o teu token de serviço"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"title": "Membros do Projeto",
|
||||
"description": "Esta página mostra os membros do projeto selecionado e permite-lhe modificar as suas permissões."
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"title": "Definições da Organização",
|
||||
"description": "Faz a gestão dos membros da sua organização. Estes utilizadores depois poderão ser organizados em projetos."
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"title": "Definições Pessoais",
|
||||
"description": "Vê e faz a gestão das tuas informações pessoais aqui.",
|
||||
"emergency": {
|
||||
"name": "Kit de Emergência",
|
||||
"text1": "O seu Kit de Emergência contém as informações que necessita para aceder à sua conta Infisical.",
|
||||
"text2": "Apenas o último Kit de Emergência emitido é válido. Para obter um novo Kit de Emergência, verifique a sua palavra-passe.",
|
||||
"download": "Descarregar Kit de Emergência"
|
||||
},
|
||||
"change-language": "Alterar Idioma",
|
||||
"api-keys": {
|
||||
"title": "Chaves API",
|
||||
"description": "Faz a gestão das suas chaves API pessoais para aceder à API Infisical.",
|
||||
"add-new": "Adicionar nova"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"title": "Definições do Projeto",
|
||||
"description": "Estas definições só se aplicam ao Projeto selecionado.",
|
||||
"danger-zone": "Zona de Perigo",
|
||||
"delete-project": "Apagar Projeto",
|
||||
"project-to-delete": "Projeto a Apagar",
|
||||
"danger-zone-note": "Assim que apares este projeto, não poderás desfazer a ação. Isto irá apagar imediatamente todas as chaves. Se ainda quiseres fazer isso, insere o nome do projeto abaixo.",
|
||||
"delete-project-note": "Nota: Só podes eliminar algum projeto caso tenhas mais do que um",
|
||||
"project-id-description": "Para integrar o Infisical no seu código e obter a injeção automática de variáveis de ambiente, deve usar o seguinte ID de Projeto.",
|
||||
"project-id-description2": "Para obter mais orientações, incluindo trechos de código para várias linguagens e frameworks, consulte ",
|
||||
"auto-generated": "Este é o identificador único - criado automaticamente - do teu projeto. Não pode ser alterado.",
|
||||
"docs": "Documentação do Infisical",
|
||||
"auto-capitalization": "Converter em maísculas automaticamente",
|
||||
"auto-capitalization-description": "Por defeito, o Infisical irá converter o texto das tuas chaves em maísculas automaticamente. Se quiser desativar este recurso, pode fazê-lo aqui."
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"title": "Registar",
|
||||
"og-title": "Substitua os ficheiros .env com 1 linha de código. Regista-te na Infisical em 3 minutos.",
|
||||
"og-description": "Infisical é uma plataforma simples e end-to-end encriptada que permite às equipas sincronizar e gerir chaves API e variáveis de ambiente. Funciona com Node.js, Next.js, Gatsby, Nest.js...",
|
||||
"signup": "Registar",
|
||||
"already-have-account": "Já tens uma conta? Inicia a sessão",
|
||||
"forgot-password": "Esqueceste da palavra-passe?",
|
||||
"verify": "Verificar",
|
||||
"step1-start": "Vamos começar",
|
||||
"step1-privacy": "Ao criares uma conta, concorda com os nossos Termos e leu a Política de Privacidade.",
|
||||
"step1-submit": "Começar",
|
||||
"step2-message": "Enviámos um código de verificação para",
|
||||
"step2-code-error": "Epá! O seu código está errado. Por favor, tenta novamente.",
|
||||
"step2-resend-alert": "Não vês o código?",
|
||||
"step2-resend-submit": "Reenviar",
|
||||
"step2-resend-progress": "A reenviar...",
|
||||
"step2-spam-alert": "Não te esqueças de verificar a sua caixa de spam.",
|
||||
"step3-message": "Tá quase!",
|
||||
"step4-message": "Guarda o teu Kit de Emergência",
|
||||
"step4-description1": "Se perderes o acesso a tua conta, o teu Kit de Emergência é a única forma de iniciares a sessão.",
|
||||
"step4-description2": "Recomendamos que o descarregues e guardes num local seguro.",
|
||||
"step4-description3": "Contém a sua Chave Secreta que não podemos aceder nem recuperar para si se a perder.",
|
||||
"step4-download": "Descarregar PDF",
|
||||
"step5-send-invites": "Enviar Convites",
|
||||
"step5-invite-team": "Convida a tua equipa",
|
||||
"step5-subtitle": "A Infisical é pensada para ser usada com a tua equipa. Convida-os para testar",
|
||||
"step5-skip": "Saltar"
|
||||
}
|
||||
@@ -162,7 +162,7 @@ const Layout = ({ children }: LayoutProps) => {
|
||||
},
|
||||
{
|
||||
href: `/activity/${workspaceMapping[workspaceSelected as any]}`,
|
||||
title: 'Activity Logs',
|
||||
title: 'Audit Logs',
|
||||
emoji: <FontAwesomeIcon icon={faFileLines} />
|
||||
},
|
||||
{
|
||||
|
||||
@@ -71,6 +71,19 @@ const DropZone = ({
|
||||
}));
|
||||
break;
|
||||
}
|
||||
case 'json': {
|
||||
const keyPairs = JSON.parse(String(file));
|
||||
secrets = Object.keys(keyPairs).map((key, index) => ({
|
||||
id: guidGenerator(),
|
||||
pos: numCurrentRows + index,
|
||||
key,
|
||||
value: keyPairs[key as keyof typeof keyPairs],
|
||||
comment: '',
|
||||
type: 'shared',
|
||||
tags: []
|
||||
}));
|
||||
break;
|
||||
}
|
||||
case 'yml': {
|
||||
const parsedFile = parseDocument(file.toString());
|
||||
const keyPairs = parsedFile.contents!.toJSON();
|
||||
|
||||
@@ -11,7 +11,7 @@ type Props = {
|
||||
};
|
||||
|
||||
export const EmptyState = ({ title, className, children, icon = faCubesStacked }: Props) => (
|
||||
<div className={twMerge('flex w-full flex-col items-center px-2 pt-6 text-bunker-300', className)}>
|
||||
<div className={twMerge('flex w-full bg-bunker-700 flex-col items-center px-2 pt-6 text-bunker-300', className)}>
|
||||
<FontAwesomeIcon icon={icon} size="2x" className='mr-4' />
|
||||
<div className='flex flex-row items-center py-4'>
|
||||
<div className="text-bunker-300 text-sm">{title}</div>
|
||||
|
||||
@@ -14,7 +14,7 @@ const tagVariants = cva('inline-flex whitespace-nowrap text-sm rounded-sm mr-1.5
|
||||
red: 'bg-red/80 text-bunker-100'
|
||||
},
|
||||
size: {
|
||||
sm: 'px-1 py-0.5'
|
||||
sm: 'px-1.5 py-0.5'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -308,7 +308,7 @@ export const AppLayout = ({ children }: LayoutProps) => {
|
||||
isSelected={router.asPath === `/activity/${currentWorkspace?._id}`}
|
||||
icon={<FontAwesomeIcon icon={faFileLines} size="lg" />}
|
||||
>
|
||||
Activity Logs
|
||||
Audit Logs
|
||||
</MenuItem>
|
||||
</a>
|
||||
</Link>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import Head from 'next/head';
|
||||
import { useRouter } from 'next/router';
|
||||
import { useTranslation } from 'next-i18next';
|
||||
|
||||
@@ -125,7 +126,12 @@ export default function Activity() {
|
||||
|
||||
return (
|
||||
<div className="mx-6 lg:mx-0 w-full h-screen">
|
||||
<NavHeader pageName="Project Activity" isProjectRelated />
|
||||
<Head>
|
||||
<title>Audit Logs</title>
|
||||
<link rel="icon" href="/infisical.ico" />
|
||||
<meta property="og:image" content="/images/message.png" />
|
||||
</Head>
|
||||
<NavHeader pageName="Audit Logs" isProjectRelated />
|
||||
{currentSidebarAction && (
|
||||
<ActivitySideBar toggleSidebar={toggleSidebar} currentAction={currentSidebarAction} />
|
||||
)}
|
||||
|
||||
@@ -47,9 +47,9 @@ export default function TravisCICreateIntegrationPage() {
|
||||
return (
|
||||
<div className="h-full w-full flex justify-center items-center">
|
||||
<Card className="max-w-md p-8 rounded-md">
|
||||
<CardTitle className='text-center'>TravisCI Integration</CardTitle>
|
||||
<CardTitle className='text-center'>Travis CI Integration</CardTitle>
|
||||
<FormControl
|
||||
label="Travis API Token"
|
||||
label="Travis CI API Token"
|
||||
errorText={apiKeyErrorText}
|
||||
isError={apiKeyErrorText !== '' ?? false}
|
||||
>
|
||||
@@ -65,7 +65,7 @@ export default function TravisCICreateIntegrationPage() {
|
||||
className='mt-4'
|
||||
isLoading={isLoading}
|
||||
>
|
||||
Connect to TravisCI
|
||||
Connect to Travis CI
|
||||
</Button>
|
||||
</Card>
|
||||
</div>
|
||||
|
||||
@@ -73,7 +73,7 @@ export default function TravisCICreateIntegrationPage() {
|
||||
return (integrationAuth && workspace && selectedSourceEnvironment && integrationAuthApps && targetApp) ? (
|
||||
<div className="h-full w-full flex justify-center items-center">
|
||||
<Card className="max-w-md p-8 rounded-md">
|
||||
<CardTitle className='text-center'>TravisCI Integration</CardTitle>
|
||||
<CardTitle className='text-center'>Travis CI Integration</CardTitle>
|
||||
<FormControl
|
||||
label="Project Environment"
|
||||
className='mt-4'
|
||||
@@ -91,7 +91,7 @@ export default function TravisCICreateIntegrationPage() {
|
||||
</Select>
|
||||
</FormControl>
|
||||
<FormControl
|
||||
label="TravisCI Project"
|
||||
label="Travis CI Project"
|
||||
className='mt-4'
|
||||
>
|
||||
<Select
|
||||
|
||||
@@ -90,7 +90,7 @@ export default function Login() {
|
||||
<ListBox
|
||||
isSelected={lang}
|
||||
onChange={setLanguage}
|
||||
data={['en', 'ko', 'fr', 'pt-BR']}
|
||||
data={['en', 'ko', 'fr', 'pt-BR', 'pt-PT']}
|
||||
isFull
|
||||
text={`${t('common:language')}: `}
|
||||
/>
|
||||
|
||||
@@ -77,13 +77,13 @@ export default function SettingsBilling() {
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<div className="bg-bunker-800 max-h-screen flex flex-col justify-between text-white">
|
||||
<div className="bg-bunker-800 pb-4 flex flex-col justify-between text-white">
|
||||
<Head>
|
||||
<title>{t('common:head-title', { title: t('billing:title') })}</title>
|
||||
<link rel="icon" href="/infisical.ico" />
|
||||
</Head>
|
||||
<div className="flex flex-row">
|
||||
<div className="w-full max-h-screen pb-2 overflow-y-auto">
|
||||
<div className="w-full pb-2">
|
||||
<NavHeader pageName={t('billing:title')} />
|
||||
<div className="flex flex-row justify-between items-center ml-6 my-8 text-xl max-w-5xl">
|
||||
<div className="flex flex-col justify-start items-start text-3xl">
|
||||
@@ -93,7 +93,6 @@ export default function SettingsBilling() {
|
||||
</div>
|
||||
<div className="flex flex-col ml-6 text-mineshaft-50 w-max">
|
||||
<p className="text-xl font-semibold">{t('billing:subscription')}</p>
|
||||
<div className="mt-4 text-bunker-200 h-14 flex justify-center items-center rounded-md bg-bunker-600 mr-4"> If you are looking to get an annual plan, please reach out to <a className="ml-1.5 underline text-primary underline-offset-2" href="mailto:[email protected]">team@infisical.com</a></div>
|
||||
<div className="grid grid-cols-2 grid-rows-2 gap-y-6 gap-x-3 mt-4 overflow-x-auto">
|
||||
{plans.map((plan) => (
|
||||
<Plan key={plan.name} plan={plan} />
|
||||
|
||||
+16
-4
@@ -1,5 +1,6 @@
|
||||
import { useMemo, useState } from 'react';
|
||||
import { Controller, useForm } from 'react-hook-form';
|
||||
import { useRouter } from 'next/router';
|
||||
import { faMagnifyingGlass, faPlus, faTrash, faUsers } from '@fortawesome/free-solid-svg-icons';
|
||||
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
||||
import { yupResolver } from '@hookform/resolvers/yup';
|
||||
@@ -61,6 +62,7 @@ export const OrgMembersTable = ({
|
||||
userId,
|
||||
isLoading
|
||||
}: Props) => {
|
||||
const router = useRouter();
|
||||
const [searchMemberFilter, setSearchMemberFilter] = useState('');
|
||||
const { handlePopUpToggle, popUp, handlePopUpOpen, handlePopUpClose } = usePopUp([
|
||||
'addMember',
|
||||
@@ -159,7 +161,7 @@ export const OrgMembersTable = ({
|
||||
<Select
|
||||
defaultValue={role}
|
||||
isDisabled={userId === user?._id}
|
||||
className="w-full bg-mineshaft-600"
|
||||
className="w-40 bg-mineshaft-600"
|
||||
onValueChange={(selectedRole) =>
|
||||
onRoleChange(orgMembershipId, selectedRole)
|
||||
}
|
||||
@@ -172,8 +174,8 @@ export const OrgMembersTable = ({
|
||||
</Select>
|
||||
)}
|
||||
{(status === 'invited' || status === 'verified') && (
|
||||
<Button colorSchema="secondary" onClick={() => onInviteMember(email)}>
|
||||
Resent Invite
|
||||
<Button className='w-40' colorSchema="secondary" onClick={() => onInviteMember(email)}>
|
||||
Resend Invite
|
||||
</Button>
|
||||
)}
|
||||
{status === 'completed' && (
|
||||
@@ -193,7 +195,17 @@ export const OrgMembersTable = ({
|
||||
</Tag>
|
||||
))
|
||||
) : (
|
||||
<Tag colorSchema="red">This user isn't part of any projects yet</Tag>
|
||||
<div className='flex flex-row'>
|
||||
<Tag colorSchema="red">This user isn't part of any projects yet</Tag>
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => router.push(`/users/${router.query.id}`)}
|
||||
className='text-sm bg-mineshaft w-max px-1.5 py-0.5 hover:bg-primary duration-200 hover:text-black cursor-pointer rounded-sm'
|
||||
>
|
||||
<FontAwesomeIcon icon={faPlus} className="mr-1" />
|
||||
Add to projects
|
||||
</button>
|
||||
</div>
|
||||
)}
|
||||
</Td>
|
||||
<Td>
|
||||
|
||||
Reference in New Issue
Block a user